polyanin
@polyanin
Golang, PHP & Symfony developer

Как вывести любую часть древовидного списка?

Приветствую!
Данные хранятся в mysql в виде таблицы id, parent_id, name
где parent_id ссылка на родителя, также parent_id может быть равен нулю
Информация выводится в виде такого дерева (см. рис.)
64211c1c1cfed946842100.png
Элементы в пределах своей ветки сортированы по id

Как вывести список, изображенный на рисунке, постранично?
т.е. именно в том порядке, как нарисовано, но например по 10 строк
без загрузки всего дерева

пример:
страница 1
64211dd9daa93456467918.png
страница 2
64211de26e85e013799901.png
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега MySQL
Для реализации этой задачи хорошо подходит хранение в виде Nested Set. Хранение в виде Adjacency List подразумевает рекурсию и полную выборку.

Но самое простое решение в данном случае - просто закешировать отсортированную выборку, не меняя хранение, и резать для пагинации уже её.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы