2011-10-14 59 views
2

我試圖在使用Entity Framework和SQL Server時決定表格設計。Entity Framework/SQL Server許多外鍵

我有一個與許多其他實體(約15)有關的單個實體(地址)。

我可以在數據庫中創建15個可爲空的FK列,也可以創建一個未綁定的列(EntityPrimaryKey)和一個EntityType列來跟蹤EntityPrimaryKey列的值。

這兩種不同的設計可能會遇到什麼問題?意見哪個更好?

+0

我也有同樣的問題。答案對我很重要:) –

回答

3

總是使用real可用於強制執行參照完整性的外鍵。

這個「定義鍵類型的鍵和列」聽起來似乎是個好主意 - 但最終,因爲無法建立任何參照完整性,所以它確實毫無意義。

隨着時間的推移,所有表中不再引用「殭屍」子行。數據的質量和完整性對​​於我來說是一個優秀的數據庫設計中最重要的方面 - 始終確保您的數據完整性具有鐵一般的優勢 - 其他任何方面都會對此做出反應!

+0

基本上我同意你的看法,但是他當然可以解決你提到的問題,如果他使用觸發器(在大多數情況下這是一個壞主意),所以他不一定會以殭屍記錄。否則,我會和你分享同樣的意見。 –

+0

可能有15個可空的FK列有什麼樣的性能/鎖定影響? – Jeff

+0

無論如何,我需要使用觸發器來確保不會同時填充多於1個FK列... – Jeff