在SQL中建模查询树/图(Celko)

时间:2011-02-24 16:28:31

标签: php sql graph tree celko

您是否知道在哪里可以找到遍历树/图的SQL查询?

我找到了这个:http://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch20.html和Celko的书。

问题是我找到的大部分资源都是关于adiacency模型树,我使用的是普通的边缘列表模型。

EG。用于提取子路径,子树等的查询或过程

由于

2 个答案:

答案 0 :(得分:2)

嵌套集模型最适合分层聚合。一般图形的遍历最好使用邻接列表模型完成。但我通过拆分节点

使用嵌套集合来收敛图形
 A
/ \
B C
\ /
 D

变为

 A
/ \
B C
|  |  
D  D

由于嵌套设置将节点保存在单独的表中,因此这很容易。

您还可以将一般图形作为所有可能生成树的森林

答案 1 :(得分:0)

如果您的图表没有经常更新,使用GRIPP index可以让您非常好地处理图表遍历查询。后者允许您在或多或少的固定时间内回答父子和深度相关的查询 - 无论图的节点数或链接密度如何。