我已經在不同的項目最近碰上這種情況下多次。這裏有一個圖的四個表,標有字母:四臺關係設計
A
1/\ 1
/ \
*/ \ *
B C
1 \ /1
\ /
* \/*
D
在這種情況下,有可能將數據變得不一致如果從按鍵到B
和A
到C
A
不匹配的給出D
。
對於一個特定的(由)例如,假設A
是Company
,B
是Employee
,C
是Project
,和D
是WorkItem
。在這種情況下,沒有任何東西可以阻止創建的工作項目聲稱被分配給甚至沒有爲擁有該項目的公司工作的人員。
我主要只是好奇,有沒有一個設計解決這個問題?我知道在真正的應用程序中,您可以使用觸發器或其他安全措施。我還沒有找到改變表格的方法,使這種不一致是不可能的。有沒有辦法?
注意,只是切斷了連接中的一個,就像從C
到A
不起作用,因爲如果該C
不存在D
的,你就沒有追查連接回A
的方式。
好問題。我一直採取保護措施來防止應用程序層中出現這種情況。看看別人要說什麼會很有趣。 –
我用來在業務規則中執行這種限制,而不是觸發器。 –
重新定義您的實體:employee - >> person(記住:ex-emplyee曾經是員工一次)可能需要添加時間軸(以及其他一些額外維度;查找隱藏維度)。 – wildplasser