nested sets +пути

stanlee

Новичок
nested sets +пути

Копаюсь с nested sets
хочу сделать так
при смещении добавлнении раздела
узнаем родителей и выстраиваем путь к расзделу допустим /1/2/3/
у данного раздела путь обновили
но если у раздела есть и детки и немного
то как обновить там пути?

что то у меня не получается с уровнями подружиться :(
 

Wicked

Новичок
Прочитал 4 раза. Если большая часть сообщения более-менее стала понятна, то фраза "но если у раздела есть и детки и немного" ставит меня в тупик.
 

stanlee

Новичок
ну опишу визуально если получится

L 1 (/)
|L 2 (/2/)
||L3 (/2/3/)
|||4 (/2/3/4/)
||5 (/2/5/)
|6 (/6/)


вроди на дерево пахоже :)

в скобках урлы каторые идут после домена
http://www.site.ru/2/3/4/

вот у меня и не получается в дереве собрать урлы для всей ветки скажем у раздела 2
те должно собраться
/2/
/2/3/
/2/3/4/
/2/5/
и т.д.

тут я и засел :(
 

Wicked

Новичок
stanlee
для них пути-урлы собираются точно так же.

кстати, можешь рассказать, зачем тебе в принципе узнавать эти пути?
 

stanlee

Новичок
да вот что то не так же :(
тут то я всю ветку получаю в 1 массив
а в рекурсии постепенно
вот у меня и получаются урлы каторые все растут и растут :(

зачем нужно то
буду парсить урл и по /2/3/4/ айдишник раздела вынипать из бд

-~{}~ 02.07.07 15:42:

народ подскажите :(
 

stanlee

Новичок
нет это уже посля
а мне нужно тупо по массиву пройтись и каждому выстроить урл и запихнуть в бд
 

kvf77

Red Devil
stanlee
храни отдельно у каждого узла его короткий путь, скажем 4
а в другом поле храни общий путь
при переносе, скажем. всегда просто получить весь путь, запросив всех детей

К конечного ребенка, также, можно тупо получить всех родителей и сложить все отрезки

Смотрим:

1
__2
____3
__4

Как получить путь 3 если удалили 2?

Просто запрашиваем ближайшего родителя 3, это будет 1 и прибавляем к полному пути 1 короткий путь 3
Детей пересчитвыаем также - просто получаем всех его детей, находим крайние точки и от них делаем запрос до элемента 3
 
Сверху