1

我遇到了这篇文章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);
  1. 在运行时,我会知道父级而不是兄弟级。
  2. 如果节点根本没有兄弟节点怎么办,我该如何添加它?
  3. 如何添加新的根节点?
4

1 回答 1

0

兄弟姐妹无所谓。您只需拥有其 parent_id 即可添加新节点。它的工作原理是这样的:将节点添加为父节点的最左子节点,然后更新节点的 lft 和 rgt,使其位置位于新节点(树的所有节点)的右侧。现在正在更新树的所有节点。

要添加新的根节点,您应该将其 parent_id 设置为 NULL。

我希望这对你有用。

于 2013-05-08T06:46:12.053 回答