вопрос
Итак. по сабжу - проводил некоторое исследование по дереву комментов. Подведу только итоги.
Есть несколько методов хранения данных: смежные вершины (стандартное дерево дле), вложенное множество (как я понял используется тут - модуль от сандера), материализованный путь (пока нет реализаций), ссылочная структура. Преимущества и производительность можно посмотреть в гугле. Но лично я считаю если использовать хранение данных вида новость - дерево комментариев в отдельных таблицах - то надо делать через смежные вершины, если в одной таблице - то вложенное множество. Однако, если мы сталкиваемся с навигацией - то везде облом - нет оптимальной реализации - в смежных вершинах - её нет в принципе, во вложенном множестве - можно реализовать выбором по level=0 и составлением веток, в материализованных путях - так же, но вывод без индекса.
Так же при выводе дерева интересна сортировка - от старых к новым или от новых к старым. Логичен вывод от старых к новым как тут, однако если новости например несколько лет и она часто комментируется - такая сортировка не удачна, но делать обратную - не удобно для чтения. Как сделать лучше и адекватно?
Итак подходим к вопросам. Нужна ли навигация и каким образом сортировать комменты для нескольких случаев - Комментируется новость несколько лет и нечастое ответвление (1), частое (2), новость быстро забывается и множество веток (3. например хабр) и мало веток (4, как тут).
Есть несколько методов хранения данных: смежные вершины (стандартное дерево дле), вложенное множество (как я понял используется тут - модуль от сандера), материализованный путь (пока нет реализаций), ссылочная структура. Преимущества и производительность можно посмотреть в гугле. Но лично я считаю если использовать хранение данных вида новость - дерево комментариев в отдельных таблицах - то надо делать через смежные вершины, если в одной таблице - то вложенное множество. Однако, если мы сталкиваемся с навигацией - то везде облом - нет оптимальной реализации - в смежных вершинах - её нет в принципе, во вложенном множестве - можно реализовать выбором по level=0 и составлением веток, в материализованных путях - так же, но вывод без индекса.
Так же при выводе дерева интересна сортировка - от старых к новым или от новых к старым. Логичен вывод от старых к новым как тут, однако если новости например несколько лет и она часто комментируется - такая сортировка не удачна, но делать обратную - не удобно для чтения. Как сделать лучше и адекватно?
Итак подходим к вопросам. Нужна ли навигация и каким образом сортировать комменты для нескольких случаев - Комментируется новость несколько лет и нечастое ответвление (1), частое (2), новость быстро забывается и множество веток (3. например хабр) и мало веток (4, как тут).