【发布时间】:2012-01-31 11:15:00
【问题描述】:
我看到了这篇文章http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/,但我没有得到“添加新节点”部分。
它说我可以这样做来添加一个新节点:
SELECT @myRight := rgt FROM nested_category
WHERE name = 'TELEVISIONS';
UPDATE nested_category SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE nested_category SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO nested_category(name, lft, rgt) VALUES('GAME CONSOLES', @myRight + 1, @myRight + 2);
- 在运行时,我会知道父级而不是兄弟级。
- 如果节点根本没有兄弟节点怎么办?
- 如何添加新的根节点?
【问题讨论】:
-
你应该使用 closure table 方法,而不是那种结构。
-
@tereško 谢谢,但为什么呢?
-
因为无论你做什么,最终都会有错误。这种方法适用于相对较少的记录,但对于更大的集合或一次更多的事务,您应该使用闭包表。
标签: mysql sql nested-sets hierarchical