这是关于外键冗余的问题
redundant foreign key?< - 类似问题
一般情况:
来自表C 的外键从表B 中引用主键 来自表C 的外键引用表A 中的主键 来自表B 的外键从表A
引用主键来自C的外键 - >因为C通过B连接到A?
所必需的具体:3桌
供应商ID - PK
部分编号 - PK
收到日期 - PK
供应商ID - FK
部分# - PK& FK
日期 - PK& FK
供应商ID - FK
谢谢 - 欢迎重新加工所有表格的建议
答案 0 :(得分:2)
如果您认为某个人的供应商始终该部件所代表的供应商,那么该密钥在技术上将是多余的。请记住,事情会随着时间而改变。据推测,供应商可以合并,人们可以改变与之相关的供应商,与部件相关的供应商可能会发生变化。
但是,数据结构看起来不正确。我认为你会想要一个person
表,其中只包含有关此人的信息。我不了解部分和人之间的关系。
所以,我认为您应该重新设计数据结构。我建议您从已确定的实体开始 - 供应商,人员和零件。然后,如有必要,为它们创建关联表。很可能每个人都应该有一个SupplierId
,每个部分都应该有一个SupplierId
并且可以建立关系模型。如果部分和人之间存在关系,那么您可以通过部分PersonId
字段来满足这一点。