我正在研究一個ASP.NET MVC 4應用程序,其中每個'級別'都有一個選項來添加費用。假設我有一個公司可以有許多活動(1對多),並且有許多產品(1對多)的活動。 [使用DB頭設計]具有相同模式的多個表或具有多個外鍵的1個表?
A公司,廣告活動和產品都可以有與之相關費「清單,併爲費數據是一樣的[名稱,價值,FK等]
我目前正在使用一個「CompanyFee」,「CampaignFee」和「ProductFee」表,它有一個與它關聯的表的外鍵。 [除FK關係以外的其他表格]
是否有意義的是隻有一個「費用」表具有可用於收費的每個表的外鍵列。所以「FeeTable」將會是[Name,Value,CompanyID(FK),CampaignID(FK),ProductID(FK)等]
這意味着如果ProductID是唯一的,它將被視爲「ProductFee」 FK帶有一個值,而其他的則爲空。
將這些表格分開是最佳實踐嗎?兩種結構的其他含義是什麼?
歡迎來到*多態關聯*的世界。嘗試獲得Bill Karwin的書「SQL Antipatterns」並閱讀他的建議。或者:http://stackoverflow.com/a/2003042/861716。或者這個:http://stackoverflow.com/q/7000283/861716 –