2011-09-21 135 views
0

我一直在努力尋找關於此的解決方案几天,但我找不到任何「最佳實踐」或如何實現我想要的好解釋。數據庫設計 - 顯示多個對象類型的文件?

可以說我有一個由以下表格組成的數據庫(只是一個例子);

Customers (Fields: Id, CustomerName, Location) 

Products (Fields: Id, ProductName, ProductCode) 

Groups (Fields: Id, GroupName) 

我然後需要將這些鏈接在一起以樹狀視圖中顯示。例如;

Customer1 
    | 
    |-Group1 
    | |-Product1 
    | |-Product2 
    | 
    |-Group2 
     |-Product2 
     |-Product3 
     |-Group3 
       | 
       |-Product1 
       |-Product4 

正如我所說的,這只是一個例子。真正的解決方案由其他類型組成。

由於產品可能出現在幾個地方,我需要創建一個「鏈接表」 來顯示分層數據。

所以我創建了另一張桌子,看起來像這樣;

Id (int) 
ParentId (int) 
ObjectType (int) 
GroupId (int) 
ProductId (int) 
CustomerId (int) 

的原因對象類型字段是我需要檢查的項目名稱等在樹形視圖中顯示哪些數據庫就知道了。

我現在的問題:有沒有其他的方式來設計這個數據庫? 我正在用C#開發LINQ等。

回答

0

從你的例子來看,樹的每一層都應該是一個新的鏈接表。

如果組1重複用於多個客戶,則不顯示組1的內容是否應該重複。但我認爲group1的內容是相同的,不管哪個客戶是關聯的。

,如果你能真正聯繫在一起,什麼事情,那麼對象類型是要走的路......但你必須是這樣的:

parentId 
ParentObjectType 
childId 
childObjectType 
+0

組對象將只是一個佔位符(現在)到從邏輯上將產品分組以便更好地查看。客戶可能有不同的用途,站點或位置,我的用戶將根據該產品進行分組。 我會得到什麼在我的表中有一個childId/childObjectType? 如果我可以在數據庫中存儲類對象,一切都應該更容易:) – Peter