我看到了这篇文章 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);
- 在运行时我会知道父节点而不是兄弟节点。
- 如果节点根本没有兄弟节点怎么办?
- 如何添加新的根节点?
最佳答案
sibling 无所谓。您只需拥有其 parent_id 即可添加新节点。 它是这样工作的:将节点添加为父节点的最左子节点,然后更新节点的 lft 和 rgt,使其位置在新节点(树的所有节点)的右侧。树的所有节点现在都在更新。
要添加一个新的根节点,你应该将其parent_id设置为NULL。
希望对你有用
关于mysql - 在 MySQL 中管理分层数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694920/