Как устроен запрос в базу данных для вывода древовидных комментариев?
это нужно делать несколько таблиц для комментариев?
но ведь тогда нагрузка на базу будет
вот наглядный пример.
Дополнительно:
Вариантов хранения деревьев много. Для каждого варианта будет свой запрос. В каком нибудь nested set или closure tree дерево выдергивается одним плоским запросом
Ответы:
Для каждого камента делаешь поле parent_id куда пишешь id родительского камента
voila!))
- напр:
id
author_id
text
parent_idесли камент первого уровня в parent_id пишешь 0
- Роми, это да, понятно, а как сам запрос должен выглядеть, что бы деревом вывести
рекомендую почитать про нормализации форм. Эта теория даёт исчерпывающий ответ
В большинстве популярных СУБД есть рекурсивные запросы
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для вывода древовидных комментариев из базы данных обычно используется структура данных под названием "Nested Set Model" или "Модель вложенных множеств". Эта модель позволяет хранить иерархическую информацию, такую как комментарии, в виде дерева, что облегчает их последующий вывод и обработку.
Для построения запроса к базе данных, который вернет древовидные комментарии, мы можем использовать рекурсивные запросы или рекурсивные функции в зависимости от используемой СУБД.
Пример запроса к базе данных для вывода древовидных комментариев на языке SQL (например, для MySQL) может выглядеть следующим образом:
WITH RECURSIVE CommentTree AS ( SELECT id, parent_id, content, 1 as level FROM comments WHERE parent_id IS NULL UNION ALL SELECT c.id, c.parent_id, c.content, ct.level + 1 FROM comments c JOIN CommentTree ct ON c.parent_id = ct.id ) SELECT id, parent_id, content, level FROM CommentTree ORDER BY id;
В данном примере мы используем рекурсивный CTE (Common Table Expression), чтобы построить древовидную структуру комментариев. Мы начинаем с корневых комментариев (те, у которых parent_id равен NULL) и затем рекурсивно объединяем таблицу comments с самой собой, чтобы получить древовидную структуру.
После выполнения данного запроса к базе данных, мы получим результат, содержащий информацию о каждом комментарии, его родителе (если есть), содержимом и уровне вложенности. Эти данные мы можем использовать для построения древовидного представления комментариев на веб-странице или в приложении.
Надеюсь, данное объяснение поможет вам понять, как устроен запрос в базу данных для вывода древовидных комментариев. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!