對於有經驗的數據庫開發人員,這可能是一個簡單的問題,但我很苦惱......我無法將某個ER圖翻譯爲數據庫模型, 。具有子類型交叉鏈接的超類型/子類型db設計
我有類似的設置滑動此呈現的17: http://www.cbe.wwu.edu/misclasses/mis421s04/presentations/supersubtype.ppt
幻燈片17示出了與具有員工類型屬性的僱員超型ER圖和作爲亞型僱員類型本身(每小時,工薪和顧問),這與我的設計情況非常相似。
就我而言,假設薪水員工是唯一可以成爲其他員工老闆的員工,並且我想以某種方式表明某個薪水員工是否是小時和/或薪水員工和/或顧問的老闆,沒有或兩者),這怎麼可能在數據庫模型中設計,同時考慮到這些是一對多的關係?
我可以把他們之間的PK-FK關係,這將導致有兩個FKeys和(就像FK_Employee和FK_SalariedEmployee顧問)和SalariedEmployee引用本身的所有表中,但我一直在想這也許不是最聰明的解決方案。 ...雖然我不確定爲什麼(誠信問題?)。
這是一個可接受的解決方案還是有更好的解決方案?
在此先感謝您的幫助!
非常感謝您的回答。我想我知道了,但要檢查一下:發電機組(發電機組)的PK id實際上與編程器的某個規格表的PK id是一樣的。因此,每個規格表(子類型)將始終具有與單個gen行相關的不同PK ID。這意味着'FK的老闆'也可以始終與髮型表(超類型)相關聯。我理解正確嗎? – TomL 2011-12-17 13:44:14
呃...我的意思是當然有另外一種方式......規範表(例如Salaried Employee)的PK id實際上將以編程方式與其中一個gen table(Employee)的PK id相同, 對? – TomL 2011-12-17 14:01:46
是的,還有更多。 「Boss of column」的FK值與Salaried Employees表中一行的PK值相同。反過來,這個PK將與Gene一行中的PK表的值相同。所以你可以根據這個共同的價值加入所有三張表。 – 2011-12-17 16:00:36