0

我想創建一個使用asp.net c#和mysql的在線購物應用程序, 我有許多類別有兩個級別的子類別,而且一些類別沒有類似的子類別:使用鄰接表模型的在線系統的數據庫設計

1.clothing 
1.1-mens      
    1.1.1-shirts       
    1.1.2-trousers 
    1.1.3-jeans 
1.2-womens  
    1.2.1-casual 
    1.2.2-jeans 
2.Books 
-tecnhology 
-medical 
-history 

3.mobiles 
    3.1-nokia 
    3.2-samsung 
    3.3-Apple 
    3.4-accesories 
    3.4.1-headset 
    3.4.2-cases and chargers  

4.movies   
    4.1-action  
    4.2-horror 
    4.3-romance  

*我的第一個問題是 - *我應該創建一個使用鄰接表的模型,因爲我已經開始學習這個模式,我已經看到,只有一個根節點在鄰接表使用的例子爲每個類別單獨的表模型。
*我的第二個問題是 - *我是否可以在鄰接列表模型中添加多個根節點,並且可以添加產品並使用父級遍歷到特定類別。 謝謝..幫助讚賞..

回答

0

即使在同一個表中,也可以有多個根節點。根節點是沒有父節點的任何節點。通常,您只需設置parent_id = null即可將該節點作爲其樹的根。

我不認爲有必要將每個類別存儲在一個單獨的表中。

您可能也對我的演示文稿感興趣,Models for Hierarchical Data with SQL and PHP(PHP部分是該材料的一小部分)。

+0

查看您的精彩演示先生後,我仍然可以使用鄰接列表,或者我應該選擇封閉表而不是..我不知道我要添加任何新的節點。在這個模型中使用鄰接表可以有什麼缺點嗎?你推薦什麼 – 2013-02-19 06:05:32

+0

如果你可以依賴樹的深度是有限的,那麼查詢對於鄰接表來說更簡單。 – 2013-02-19 06:45:24