多对多关联表PK作为其他表中的FK

Posted

技术标签:

【中文标题】多对多关联表PK作为其他表中的FK【英文标题】:Many to Many association table PK as FK in other table 【发布时间】:2020-02-02 10:32:59 【问题描述】:

我有以下表格:schoolteacherschool_teacherstudent

school_teacher 是一个多对多联结表,使用自动生成的 PK 和 schoolteacher 的 FK。

一个学生属于一个特定学校的老师,一个学校的老师有很多学生。

我的问题是我应该在学生表中创建外键以指向school_teacher 表PK 还是分别指向两个表PK(schoolteacher)?

我认为引用完整性最好引用school_teacher,以确保仅在学校和老师之间存在关系时才插入交易记录。就最佳实践而言,解决此问题的最佳选择或最佳方法是什么?还有比我提到的更好的可能性吗?

一般来说,是否存在关联表的主键是另一个表的外键的问题?

这只是一个例子。在一个真实的案例中,一个学生可能有不止一个老师。就是为了简化例子。

【问题讨论】:

【参考方案1】:

学生 * ------ 1 所学校 *-----*老师

您会检查学生属于一个学校还是多个学校?

【讨论】:

是的。此外,学生必须与一名或多名教师相关联。因此,有必要将学生与老师联系起来。

以上是关于多对多关联表PK作为其他表中的FK的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate多表关系配置——多对多对关系映射

Laravel 雄辩的多对多模型

EntityFramework同一张表多对多关系

hibernate多对多映射中间表有多余字段问题该如何映射

查询联结表中FK引用的表中的其他字段

如何为连接表中的其他属性创建多对多 Hibernate 映射?