iSlayter
Новичок
В тридесятый раз про деревья. Выращиваем.
Вообщем. Не знаю что выбрать: Adjacency List || Nested Sets.
Где будут использоваться?
Каталог, вложенность 3х уровневая. Но может перерасти в нечто большее. Изменяться будет редко. Но перенос дочерних узлов между ветками будет довольно частым (почему и не спрашивайте, таково ТЗ).
Что выбрать?
Есть ли у кого-либо свои библиотеки для работы с деревьями по этим двум алгоритмам, которыми вы можете поделиться?
DBTree не подходит, т.к. тащит за собой ADOdb. По Adjacency list вообще ничего готового не видел
но понравилась идея с указателями (в теоретическом форуме).
Про деревья почитал в мане mysql'я. Полдня работы минимум уйдёт на реализацию Nested Sets своего. Ну и не особо просто алгоритм.
С Adjacency list всё проще. Дерево кешироваться не будет (нагрузки не те). С построением дерева будет сложнее (т.е. кода чуть больше)... не простож отсортировать по left, как во вложенных множествах.
Т.е. даже вопрос в другом наверное.
Кому приходилось строить деревья и в каких ситуациях? Какой способ хранения вы выбрали? Почему?
Вообщем. Не знаю что выбрать: Adjacency List || Nested Sets.
Где будут использоваться?
Каталог, вложенность 3х уровневая. Но может перерасти в нечто большее. Изменяться будет редко. Но перенос дочерних узлов между ветками будет довольно частым (почему и не спрашивайте, таково ТЗ).
Что выбрать?
Есть ли у кого-либо свои библиотеки для работы с деревьями по этим двум алгоритмам, которыми вы можете поделиться?
DBTree не подходит, т.к. тащит за собой ADOdb. По Adjacency list вообще ничего готового не видел
но понравилась идея с указателями (в теоретическом форуме).Про деревья почитал в мане mysql'я. Полдня работы минимум уйдёт на реализацию Nested Sets своего. Ну и не особо просто алгоритм.
С Adjacency list всё проще. Дерево кешироваться не будет (нагрузки не те). С построением дерева будет сложнее (т.е. кода чуть больше)... не простож отсортировать по left, как во вложенных множествах.
Т.е. даже вопрос в другом наверное.
Кому приходилось строить деревья и в каких ситуациях? Какой способ хранения вы выбрали? Почему?