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

时间:2019-03-14 14:15:06

标签: sql relational-database

假设我正在构建大学管理软件的后端。 我有一个用户表,其中包含以下列:

id
name
birthday
last_english_grade
last_it_grade

教授表列:

id
name
birthday

我想要第三张桌子,可以用来确定所有教授学生的教授。 所以我想为每位学生分配多位老师。 那些教授可能随时改变。 也可以随时添加新学生。

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

1 个答案:

答案 0 :(得分:2)

做到这一点的规范方法是引入第三个 junction 表,该表的存在主要是为了将用户与教授联系起来。

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

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