SQL 具有两个变化属性的数据库结构

SQL database structure with two changing properties

假设我正在构建大学管理软件的后端。 我有一个用户 table 具有以下列:

id
name
birthday
last_english_grade
last_it_grade

教授table列:

id
name
birthday

我想要第三个 table 我可以用它来确定所有教学生的教授。 所以我想为每个学生分配多位老师。 这些教授随时可能更换。 也可以随时添加新学员。

实现此目标的最佳方法是什么?

这样做的规范方法是引入第三个 junctiontable,它的存在主要是为了将用户与教授联系起来:

users_profs (
    user_id,
    prof_id,
    PRIMARY KEY (user_id, prof_id)
)

此联结点的主键 table 是用户 ID 和教授 ID 的组合。请注意,此 table 相当精简,并且避免了为给定用户或教授重复元数据的问题。相反,user/professor 信息保留在您的两个原始 table 中,不会重复。