我是SQL新手。我需要构建一个数据库来保存以下树中的数据:
tree
========
stringA
/ | \
groupA groupB groupC
| | | \
groupW groupX groupY groupZ
我有~2,000个不同的'stringA'值。每个子组将被组织成一个或多个子组,每个子组将被组织成一个或多个父组。当我的程序启动时,我需要列出所有父组。如果用户选择其中一个组,我需要列出所有子组的列表,这些子组是该父组的子组。如果用户选择子组,那么我需要列出子组中包含的所有叶节点。
每个“stringA”的子组数量变化,每个子组的父级父组数量也不同。
有人可以提供有关如何将这些数据组织到表中的建议吗?就像我说的那样,我对SQL是一个完整的noobie所以任何帮助都非常感谢!
谢谢!
阳光
答案 0 :(得分:1)
我建议使用Closure Tables'模式'。那应该符合你的要求。
只需谷歌谷歌或(更好)去购买/窃取SQL Antipatterns书。它有一章关于创建树状结构,其中一种解释方法是闭包表。它将解释如何/为何使用它们以及有哪些替代方案。