多对多关联表PK作为其他表中的FK
Posted
技术标签:
【中文标题】多对多关联表PK作为其他表中的FK【英文标题】:Many to Many association table PK as FK in other table 【发布时间】:2020-02-02 10:32:59 【问题描述】:我有以下表格:school
、teacher
、school_teacher
和 student
。
school_teacher
是一个多对多联结表,使用自动生成的 PK 和 school
和 teacher
的 FK。
一个学生属于一个特定学校的老师,一个学校的老师有很多学生。
我的问题是我应该在学生表中创建外键以指向school_teacher
表PK 还是分别指向两个表PK(school
、teacher
)?
我认为引用完整性最好引用school_teacher
,以确保仅在学校和老师之间存在关系时才插入交易记录。就最佳实践而言,解决此问题的最佳选择或最佳方法是什么?还有比我提到的更好的可能性吗?
一般来说,是否存在关联表的主键是另一个表的外键的问题?
这只是一个例子。在一个真实的案例中,一个学生可能有不止一个老师。就是为了简化例子。
【问题讨论】:
【参考方案1】:学生 * ------ 1 所学校 *-----*老师
您会检查学生属于一个学校还是多个学校?
【讨论】:
是的。此外,学生必须与一名或多名教师相关联。因此,有必要将学生与老师联系起来。以上是关于多对多关联表PK作为其他表中的FK的主要内容,如果未能解决你的问题,请参考以下文章