【问题标题】:SQL - How do I implement one many-to-many table connecting to two tables?SQL - 如何实现一个连接到两个表的多对多表?
【发布时间】:2022-01-18 20:40:49
【问题描述】:

我有两张桌子,Student 和 Lecturer。 Student 和 Lecturer 都与表 User_Preferences 具有多对多关系,如下所示。

但是,它甚至是红色箭头所示的外键的正确实现吗?

(已编辑)我确实尝试过继承,以便可以使用 user_id 作为外键,但是问题不允许这样做。谢谢。

【问题讨论】:

    标签: sql class-diagram


    【解决方案1】:

    最好使用一个用户表,并通过其中的字段区分学生和讲师,或者让讲师和学生与单个表格相关联。后者可能更合适,尽管上面的模式中没有任何东西需要它。

    您应该考虑的一种情况是用户既是学生又是讲师,这在第三级并不少见。在这种情况下,他们可能对每个角色都有不同的详细信息。

    然后关联表将包含 user_id、preferences_id 和可选的 user_preference_id。

    【讨论】:

    • 希望我能做到,不幸的是我无法合并用户下的表格。
    • 奇怪。在这种情况下,请为讲师/偏好和学生/偏好使用单独的关联表。
    • 是否可以将桥接表分成两个 Lecturer_Preferences 和 Student_Preferences 并有不同的 Preferences 表(底部的那个)?还是因为属性相同,它们可以共享同一个 Preferences 表?
    • 使用一个首选项表。
    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2014-09-01
    • 2015-09-08
    • 2021-05-30
    • 1970-01-01
    • 2013-10-17
    • 2011-05-07
    相关资源
    最近更新 更多