Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   А как лучше создать древовидный каталог? (https://javascript.ru/forum/server/77895-kak-luchshe-sozdat-drevovidnyjj-katalog.html)

sanderlake 29.06.2019 09:50

А как лучше создать древовидный каталог?
 
Доброе утро.

Знаю что если хранить каталог по простому через parentId то выбрать только рекурсией получится, что не подходит.
Делитесь что сами используете, нужно чтобы можно было добавлять новое в нужное место, редактировать, т.е. переносить существующее.

Фреймворк думаю выбор падет на yii

laimas 29.06.2019 10:41

http://www.getinfo.ru/article610.html

Цитата:

Сообщение от sanderlake
если хранить каталог по простому через parentId то выбрать только рекурсией получится

Не обязательно рекурсия.

micscr 30.06.2019 15:04

На материализованных путях полно способов как, в т.ч. без рекурсии

Vlasenko Fedor 01.07.2019 17:46

laimas,
правильно указал на NESTED SETS
но чем вам рекурсия не нравится. Она поддерживается наверное всеми современными базами данных и работает отлично

laimas 01.07.2019 19:35

Poznakomlus,
можно получить все, а уже результат рекурсивным обходом.
А можно вообще без рекурсии получить все дерево, как:

SELECT ... FROM t root
LEFT JION t sub1
ON root.id = sub1.parent
LEFT JION t sub2
ON sub1.id = sub2.parent
....
LEFT JION t subN
ON subM.id = subN.parent
WHERE root.parent = 0
ORDER BY id


если глубина вложения дерева ограничена.

Vlasenko Fedor 02.07.2019 00:04

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


Часовой пояс GMT +3, время: 13:16.