sql表结构 - 通过向后遍历树来构建数据对象

时间:2011-11-27 00:03:04

标签: sql database-design

我是SQL新手。我需要构建一个数据库来保存以下树中的数据:

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


我有~2,000个不同的'stringA'值。每个子组将被组织成一个或多个子组,每个子组将被组织成一个或多个父组。当我的程序启动时,我需要列出所有父组。如果用户选择其中一个组,我需要列出所有子组的列表,这些子组是该父组的子组。如果用户选择子组,那么我需要列出子组中包含的所有叶节点。

每个“stringA”的子组数量变化,每个子组的父级父组数量也不同。

有人可以提供有关如何将这些数据组织到表中的建议吗?就像我说的那样,我对SQL是一个完整的noobie所以任何帮助都非常感谢!

谢谢!

阳光

1 个答案:

答案 0 :(得分:1)

我建议使用Closure Tables'模式'。那应该符合你的要求。

只需谷歌谷歌或(更好)去购买/窃取SQL Antipatterns书。它有一章关于创建树状结构,其中一种解释方法是闭包表。它将解释如何/为何使用它们以及有哪些替代方案。