我意識到這些類型的問題的答案通常「取決於」,但我仍然想知道一般共識可能是什麼。數據庫設計 - 多個實體的類似聯繫信息
我處理的多個實體如
- 公司
- 慈善
- 審計
- Stocktaker
等等...
所有有聯繫諸如電子郵件,電話等信息ephone和地址。
的兩種設計方法我想存儲聯繫人信息是
方法1)建立聯繫表和公司,慈善機構,審計師和stocktaker之間的角色表。
- dbo.Company - > dbo.CompanyAddress < - dbo.Address
- dbo.Company - > dbo.Companytelephone < - dbo.telephone
dbo.Company - > dbo.Companyaddress < - DBO .email
dbo.Auditor-> dbo.AuditorAddress < - dbo.Address
- dbo.Auditor-> dbo.Auditortelephone < - d bo.telephone
- dbo.Auditor-> dbo.Auditoraddress < - dbo.email
優勢,但僅需要一個地址,電話和電子郵件表,數據庫和所有的電話號碼,地址和電子郵件的每個實體類型被存儲在一個地方 缺點是它產生大量關聯表
的方法2)創建每個公司,慈善機構,審計和stocktaker一個單獨的接觸表
- dbo.Company - > dbo.CompanyContactAddress
- dbo.Company - > dbo.CompanyContacttelephone
dbo.Company - > dbo.CompanyContactaddress
dbo.Auditor - > dbo.AuditorContactAddress
- DBO .Auditor - > dbo.AuditorContacttelephone
- dbo.Auditor - > dbo.AuditorContactaddress
的這個優點是容易我實施和維護 缺點是聯繫人詳細信息存儲在整個數據庫的多個位置。
如果任何人有任何其他的想法,將不勝感激。
非常感謝
乾杯達斯汀。我喜歡路中間的想法。我想我會使用這個想法,但我需要遷出地址,因爲潛在的各種實體可能有數十個地址。歡呼的建議。 – Pixelated 2010-09-03 13:40:57