Общие > Базы данных

Nested Sets проблема с деревьями. ОЧЕНЬ СРОЧНО

(1/1)

ekeeper:
Типа вот статейка
http://www.webscript.ru/stories.php3?story=04/09/01/8197045

Там все круто написано конечно, но кое чего не хватило.

Задача:
Есть дерево, все хорошо.
Надо найти все узлы у которых нет производных (детей)
Для каждого надо найти родительскую ветку (написано в статье), ИЛИ хоть ОДНОГО первого родителя.
Мне надо составить ниспадающий список из этих веток (путей)

пример:

/
-1
--1
--2
----1
--3
---1
-----1

надо получить список из строк:
/ -> 1 -> 1
/ -> 1 -> 2 -> 1
/ -> 1 -> 3 -> 1 -> 1

Подскажите, как такое сделать? Желательно одним запросом, ну или двумя... %((((

Как я делал.
1. Выбирал все id узлов какие есть.
2. В цикле для каждого найденого смотрел ветку которую этот элемент порождает - если ветка из одного элемента (из самого этого узла), значит у него нет детей и это искомый
3. Для всех найденых узлов в пункте 2. применяю запрос из статьи по котороу высчитывается родительская ветка

на 3м пункте падает апач из-за кучи обращений к базе...
надо сократить кол-во запросов...

ПАМАЖИТЕ!!!!

Макс:
У узлов без детей разница между right и left всегда равна единице.

Насчет решения твоей задачи, ИМХО можно оставить тот вариант который у тебя, только 2-ой пунтк упростить.

3-ий пункт тоже можно упростить, но получиться много кода на ЯП и куча работы с массивами

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии