我希望有人能告訴我,這將是壞的數據庫設計: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