這裏是場景。ERD - 實體關係圖 - 複雜而棘手的關係
兩個完全不同的實體以相同的方式與第三個實體獨立相關。我們如何在ERD中表示它?或(增強ER)
例:
- 學生 「借」 書(從庫)
- 部門 「借」 書(從同一個庫)。
如果我兩次定義'BORROWS'關係,它在圖中的外觀方面會很笨拙和笨拙,並且增加了實現的複雜性。
與此同時,我不能聲明三元關係,因爲STUDENT和DEPARTMENT在關係實例中沒有相互關係。
但是,我找不到更好的方法。
我該如何解決?
這裏是場景。ERD - 實體關係圖 - 複雜而棘手的關係
兩個完全不同的實體以相同的方式與第三個實體獨立相關。我們如何在ERD中表示它?或(增強ER)
例:
如果我兩次定義'BORROWS'關係,它在圖中的外觀方面會很笨拙和笨拙,並且增加了實現的複雜性。
與此同時,我不能聲明三元關係,因爲STUDENT和DEPARTMENT在關係實例中沒有相互關係。
但是,我找不到更好的方法。
我該如何解決?
如果要相信維基百科,Enhanced ER允許繼承。爲什麼你沒有BORROWER實體(有適當的關係),並且有STUDENT和DEPARTMENT子類?
我一直有類似的問題 - 公司或個人可以訂購產品。
你有一個order
,它可以屬於person
或company
- 那麼你把關係鏈接到什麼?我在想訂單會有一個companyId
和一個personId
外鍵,但是如何讓它們獨佔?返回的數據不一定相同 - 例如,company
沒有first name
/last name
字段。
我想這可能由具有name
返回來完成,並且在person
的情況下建立串出的firstname
/lastname
,並在company
的情況下使用companyname
領域。
我是通過泛化來完成的。例如:在你的情況下,我會創建Customer表。人與公司是其子類。客戶包含customerId。 OrderInfo指向customerId,從中您可以推導出您的訂購者是否是公司/個人。 – Firefox
感謝您的答覆aix。 這絕對是一個解決方案。 我只是想知道實現過程中的複雜性,即創建表。 如果在編程環境中出現這種情況,那麼它將是最合適的解決方案。我仍然不確定在數據庫環境中。 – Firefox
@Firefox:除了「圖表上的尷尬和笨拙的外觀」之外,您試圖解決的真正問題是什麼? – NPE
我只是在實施過程中尋找一種不太複雜的解決方案,但卻滿足所有要求。 當我提到,尷尬和笨拙,這是兩個重複關係的情況下,這也導致數據庫中的多個表。 – Firefox