我相信我不是第一個提出這個問題的人,但我找不到一個好的答案,我承認數據庫設計不是我的主要優勢。數據庫設計:在超類型/子類型上加入表
假設我有一個產品,並且此產品可以有子類型,產品A,產品B,產品C和產品D.超類型產品將具有一些共同屬性,而子類型將具有特定於這些子類型的屬性。相當標準的超類型/子類型設計。
現在我有一個用戶實體。產品可以有許多用戶,並且用戶可以有許多產品。所以理想情況下,我想在這些連接表上加上一些關於該連接的特定屬性。我遇到的問題是我不想做Product-User連接表,但更像是與User和Product子類型的連接,因此是ProductA-User,ProductB-User,ProductC-User,ProductD-User。原因是這兩個實體的連接具有特定於該產品和用戶連接的自己的屬性。
這個設計是否有意義?還是有更好的方式來處理這種行爲。我喜歡我的產品的標準超類型/子類型,但當我需要將它們與其他實體結合時,我不確定如何處理。
我看了一下你的例子,謝謝你指出了一個例子。這種情況下,與用戶連接時的子類型會有不同的列。 ProductAUser和ProductBUser將具有不同的列。 – 2011-03-31 14:55:21