嵌套设置如何确定左右节点

时间:2014-05-18 14:26:38

标签: php mysql nested-set-model

 1 - Root - 20

 2 - child1 - 3
 4 - child2 - 5
 6 - child3 - 7
 8 - child4 - 9

这是mysql的嵌套集模型。

让我们说_lft_rgt是指示左右值的字段

因为我看到值越低,lefter就是孩子?所以这里我们从左侧得到2个孩子,从右侧得到2个孩子,可以这样做而不添加像direction这样的新字段,可以在插入之前指示孩子的方向吗?

我想仅使用_lft_rgt确定这一点,我无法弄清楚逻辑是什么,即使是在单词中,也没有代码nessesary

如何仅查询属于左侧相对于父级的子项?

请提出任何建议,谢谢。

1 个答案:

答案 0 :(得分:1)

我认为你真的需要努力了解嵌套集的工作原理。

我会读到这个模型的图表以及如何插入新节点(其余部分也是很好的信息)。 http://falsinsoft.blogspot.com/2013/01/tree-in-sql-database-nested-set-model.html

请注意,所有叶子都是_rgt = _lft + 1.最左边叶子的_lft是min(选择_lft ....其中_rgt = _lft + 1)。

将这些知识与同一页面上的节点查询路径相结合,我认为您已经拥有了所需的知识。

另一个资源是维基百科页面:

http://en.wikipedia.org/wiki/Nested_set_model