2015-11-09 50 views
0

我有一個SupportFile表,我想用它來存儲各種來源的文件。這裏是佈局截至目前:處理多個關係到1個表的最佳方法

enter image description here

這不是一成不變的,我還在發展中的表。

將SupportFile表關聯到這些其他表的最佳方式是什麼?如有必要,可能會有同一個表中的多個關聯和多個關聯。

例如,SupportFile中的記錄可以附加到Corporation,Account或SupportEmail,或者在每張表中同時多次記錄所有記錄。我可以有兩個帳戶鏈接到SupportFile。

我正在考慮爲SupportFile可以附加到的每個表創建文件關聯表。這是正確的方向嗎?

我正在嘗試尋找處理此問題的最佳方法。任何人有任何建議?

回答

1

您可以創建一個表,其中包含FK支持文件和可空的FK到每個其他表。這有點凌亂,但你可以只用一張桌子。新表可以是這樣的:

SupportFileId (NOT NULL) 
CorporationId (NULL) 
AccountId (NULL) 
SupportEmailId (NULL) 
UserNameId (NULL) 

因此,舉例來說,如果你有連接到只有一個公司SupportFile,你有1條記錄與SupportFileId和CorporationId與空列的其餘部分。

如果你有一個支持文件附加到公司和用戶名,你會有2行。其中一個帶有SupportFileId和Corporation,其餘爲空,另一個帶有相同的SupportFileId和UserNameId,其餘爲空。

由於這會爲每個表和支持文件創建多對多的關係,因此它應該允許您滿足您的所有要求。

相關問題