【发布时间】:2017-06-07 02:21:40
【问题描述】:
我正在建立模型之间的关系,我想知道将桥表用于一对多关系是否有任何危害?
即这些是一些模型
- 用户
- 团队
- 组
每个用户可能有也可能没有团队或组。在team_id、group_id 的用户模型中使用可为空的 FK 会更好,还是可以使用桥接表 team_user、group_user? (这几乎不可能是多对多关系)
将桥接表用于一对多会有什么不良影响吗?
【问题讨论】:
标签: mysql one-to-many
我正在建立模型之间的关系,我想知道将桥表用于一对多关系是否有任何危害?
即这些是一些模型
每个用户可能有也可能没有团队或组。在team_id、group_id 的用户模型中使用可为空的 FK 会更好,还是可以使用桥接表 team_user、group_user? (这几乎不可能是多对多关系)
将桥接表用于一对多会有什么不良影响吗?
【问题讨论】:
标签: mysql one-to-many
“桥接表”通常用于建模多对多。在您的情况下,一个用户可以在多个团队或组中吗?如果是这样,桥接表就是你想要的。如果没有,我会选择 nullable-FK。
如果您想要一对多的桥接表,您应该使用唯一索引来确保您只有“一个”。
现在 null 本身就是一些宗教战争的主题。有很好的论据可以避免它们。在这种情况下,我认为它们没问题 - 这意味着 0(fk 为 NULL)或 1(fk 指向用户所属的团队或组。)
【讨论】: