Нужны следующие возможности: - добавление страницы в выбранный раздел
- удаление разделов
- изменение порядка сортировки в разделе
- выборка всех разделов/подразделов/страниц из заданного раздела с учетом сортировки
- построение пути (рездел 7 - подраздел 2 - подраздел 3 - страница 6) по выбранному разделу
- поиск страницы по URL
Страниц предполагается до
200.
Хотелось бы узнать, какие методики хранения вы используете: - Список смежных вершин (Adjacency List)
- Вложенное множество (Nested Set)
- Материализованный путь (Materialized Path).
И есть ли конкретный пример реализации (класс на PHP к примеру).
Спустя 3 часа, 41 минута, 40 секунд (13.02.2009 - 11:19) kirik написал(а):
Для сложной структуры сайта я бы использовал Nested Set Model.
Adjacency List Model имеет ряд недостатков и неудобств в работе. Например чтобы вывести какой-либо путь нужно знать на каком уровне мы находимся, или чтобы удалить уровень нужно будет перебрать все дочерние уровни начиная с верхнего, чтобы выставить правильные родительские значения. Думаю что этот метод можно использовать когда структура не модифицируется, а только дополняется (простые комменты без удаления, или двач
)
С Nested Set Model все проще. Для отображения пути не нужно знать на каком уровне мы сейчас, для удаления/перемещения раздела нужно выполнить несколько запросов.
Классом не поделюсь.. Никак руки не доходят
А из сети, можешь поглядеть
этот.
Спустя 14 минут, 10 секунд (13.02.2009 - 11:34) Sylex написал(а):
kirikспасибо, именно его уже и реализовываю!
Осталась сортировка
Спустя 5 дней, 21 час, 48 минут, 16 секунд (19.02.2009 - 09:22) HardWoman написал(а):
Что касаемо Nested Set Model, то там есть существенный недостаток, при большой структуре значимый - пересчет правого и левого индекса по всей структуре. Если структура не будет изменяться часто - то не проблемма
Есть еще способ - вложенные подмножества - но он избыточен по данным. То есть для каждого пути прописываются все дети
Спустя 35 минут, 2 секунды (19.02.2009 - 09:57) Sylex написал(а):
HardWomanя же писал - максимум до 200 страниц
забыл указать только - изменения структуры будут редкими
Спустя 1 день, 3 минуты, 23 секунды (20.02.2009 - 10:25) Sylex написал(а):
_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.