这是一个关于外键冗余的问题。
redundant foreign key? <-相似问题
一般而言:
表C中的外键引用表B中的主键
表C中的外键引用表A中的主键
表B中的外键引用表A中的主键
由于C是通过B连接到A的,所以从C到-> A的外键是必需的吗?
具体:3个表
供应商信息表A
供应商ID - PK
个人联系信息(供应商)表B
第#- PK部分
收到日期- PK
供应商ID - FK
表C部分
#- PK及FK
日期- PK & FK
供应商ID - FK
谢谢--我们也欢迎对所有桌子进行重新加工的建议。
发布于 2013-07-19 23:21:49
如果您假设某个人的供应商总是由该部件所代表的供应商,那么关键在技术上是多余的。记住,事情会随着时间的推移而改变。据推测,供应商可以合并,人员可以改变他们与之相关的供应商,而与某一部分相关的供应商可能会改变。
然而,数据结构看上去并没有正确地标准化。我认为您需要一个person表,其中只包含有关此人的信息。我不明白零件和人之间的关系。
所以,我认为你应该重新设计你的数据结构。我建议你从你确定的实体开始--供应商,人员和零件。然后,如果有必要,为它们创建关联表。很有可能每个人都应该有一个SupplierId,每个部分应该有一个SupplierId,并且对关系进行建模。如果在部件和人员之间存在某种关系,那么您就可以通过部分中的PersonId字段来满足这一要求。
https://stackoverflow.com/questions/17756873
复制相似问题