2011-11-27 53 views
0

我是SQL新手。我需要建立一個數據庫,在下面的樹來保存數據:sql表結構 - 通過向後遍歷樹構建數據對象

     tree 
        ======== 
        stringA 
       / | \ 
      groupA groupB groupC 
       |  |  | \ 
      groupW groupX groupY groupZ 


我〜20,000種不同'stringA的價值觀。每一個將被組織成一個或多個子組,並且每個子組將被組織成一個或多個父組。當我的程序啓動時,我需要列出所有父組。如果用戶選擇這些組中的一個,我需要列出所有子組對這個父組的子組。如果用戶選擇了子組,那麼我需要列出子組中包含的所有葉子節點。

每個「stringA」所具有的子組的數量是變化的,每個子組的父父組的數量也是如此。

任何人都可以提供有關如何將這些數據組織到表中的建議嗎?就像我說的,我是一個完整的SQL的noobie,所以任何幫助非常感謝!

謝謝!

Sunny

回答

1

我會推薦使用Closure Tables'pattern'。那應該符合你的要求。

不僅僅是谷歌的名稱或(更好的)去購買/偷SQL Antipatterns書。它有創建樹狀結構的章節,解釋的方法之一是閉合表。它將解釋如何/爲什麼使用它們以及有什麼替代方案。