簡體   English   中英

ER diagramm建模:FK到多個表

[英]ER diagramm modeling: FK to more than one table

我在SQL Server 2008上使用數據庫進行Web應用程序。我正在分析給定應用程序的ER模型。

有一個表“Table1”,其中包含“ContactType”和“ContactID”列。 基於ContactType值“ContactID”指向不同的表(Table_ContactType1或Table_ContactType2)。

所以,在這種情況下我們無法定義外鍵。 我想知道這是不是很好的做法? 如果沒有,我應該以某種方式改變模型嗎? 如果沒有定義外鍵,它會在以后引起一些問題嗎?

編輯:目前很難將ContactType1和ContactType2表組合到一個表中。 因為CotnactType1是之前使用過的表,它包含有權訪問系統的用戶(登錄名和密碼,電子郵件和其他信息)。 IT是一個包含許多領域的表。 不幸的是,新的要求來了,新表ContactType2已創建。 此表只有三列,這些是沒有任何系統訪問權限的組織名稱。 將它們組合起來是非常困難的,因為它會影響很多功能。 最簡單的事情 - 當聯系contacttype1表時,添加電子郵件,用戶名,密碼不能為空等等。還有很多其他的。

您可以創建第三個表,將結合ContactType1ContactType2為他們共同的列( TypeID從你的),然后你可以FK Table1到合並后的新表(姑且稱之為ContactTypeUnified

ContactType1ContactType2都可以保持原樣,並且它們的ID也可以作為新的ContactTypeUnified表的FK。

您唯一的麻煩是ContactType1ContactType2上的數據操作也必須反映在ContactTypeUnified

一般而言,沒有完整性的數據庫設計是不值得信任的,需要不惜一切代價避免 - 所以是的,你確實需要應用外鍵。 在這種情況下,我只是將兩個聯系人類型表組合在一起,因為它們不太可能分開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM