我希望有人能告诉我,这将是坏的数据库设计:SQL:关系数据库设计 - 多FKS给同桌
比方说,我有两个表:
Person
Contract
而且我们说我得到两种类型的合同,一个合同(只涉及一个人)和一个合同(涉及两个人)。没有其他排列。
这将是最简单的设置合同表有两个FK领域,其中之一是为空的,即:
合同:
ContractID Description PersonID PersonID_Second
1 Single person contract 1112 NULL
2 Joint contract 1073 900
这是一个坏主意?
感谢
卡尔
感谢所有的评论。这里两个人确实有区别。一个是合同持有人,另一个是“随行”,如你所示。以这种方式分配到合同的人数增加的概率不是零,而是足够小。我更担心用户将3人以上分配给同一份合约 - 目前有100%的机会出错。尽管如此,这并不排除使用M:N关系,它只需在ContractPerson表中具有适当约束的“PersonNumber”字段。 – Karl 2011-03-30 14:00:12