реализация древовидной структуры комментариев

Духовность™

Продвинутый новичок
реализация древовидной структуры комментариев

Привет.
Скажите пожалуйста, а какую структуру, т.е. какой способ хранения деревьев нужно использовать для хранения комментариев древовидной структуры (как в ЖЖ, например). Естественно, с учетом того. что нужно разворачивать ветки и подниматься на уровни выше (последнее - не обязательно).
 

fixxxer

К.О.
Партнер клуба
кстати, в жж сделано примерно так:

id : parent_id : order_id : level

то есть избыточный список смежности с дополнительным полем по которому order by.

этим, кстати, объясняются и "(deleted comment)", и лимит на количество комментариев ;)
 

Фанат

oncle terrible
Команда форума
Wicked
А можно кратенько, почему именно они, а не матерный путь?
 

Wicked

Новичок
*****
ну во-первых, мне, математику, больше нравится стройность nested sets:
1) 2 поля типа int куда красивее varchar'а непонятно какого размера. Особенно при том, что varchar не избавляет от поля типа int для определения порядка записей внутри одного родителя.
2) сторовые операции для манипуляции путём - фи

ну и практические соображения:
1) varchar уводит нас от row_format = fixed.
2) как подумаю про сортировку по полю пути, становится страшно. Кстати, это одна из причин перехода на nested sets в cachegrindvisualizer.
3) у NS больший набор позволенных выборок: я так и не придумал, как из MP выбрать всех детей какой-то ноды, отсортировав их правильно на каждом уровне.

ps: да, для человека, который руками ковыряется в базе, материализованные пути нагляднее :)
 
Сверху