Я столкнулся с этой статьей http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/, но я не получил часть «Добавление новых узлов».Управление иерархическими данными в 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);
- На время выполнения я буду знать родитель а не родственные.
- Что делать, если узел не имеет братьев и сестер вообще, как его добавить?
- Как добавить новый корневой узел?
Вместо этой структуры вы должны использовать * закрывающий стол * подход. –
@ tereško спасибо, но почему? – oaziz
Потому что, что бы вы ни делали, будут ошибки в будущем. Этот метод хорош для относительно небольшого количества записей, но для больших наборов или более транзакций за один раз вы должны использовать таблицу закрытия. – Mroz