Автор Тема: Nested Sets проблема с деревьями. ОЧЕНЬ СРОЧНО  (Прочитано 2955 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ekeeper

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 31
  • +0/-0
  • 0
    • Просмотр профиля
    • http://livejournal.com/~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м пункте падает апач из-за кучи обращений к базе...
надо сократить кол-во запросов...

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

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Nested Sets проблема с деревьями. ОЧЕНЬ СРОЧНО
« Ответ #1 : 26 Октября 2005, 17:53:59 »
У узлов без детей разница между right и left всегда равна единице.

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

3-ий пункт тоже можно упростить, но получиться много кода на ЯП и куча работы с массивами
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

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