Kirill
Новичок
боольшой TEMPORARY TABLE
есть список позиций, которые располагаются в виде дерева (наподобие сообщений в форумах). Структурируются позиции в виде дерева по двум полям в БД: id и id_parent (если id_parent=0 - корневой элемент). Дерево может быть неограниченной вложенности. Нужно вывести это список в виде дерева на сайте с постраничным разбиением
Ещё один важный момент - я не знаю ни структуры таблицы, ни сортировки, ни условия where - т.е. дочерний класс подсовывает массив с описанием полей, а я по этим полям строю запрос.
Что я хочу для простого (для меня) решения задачи:
1)Составляю запрос на выборку позиций.
2)По этому запросу создаю временную таблицу CREATE TEMPORARY TABLE tbl_name SELECT ну и далее мой запрос, ограниченный LIMIT 1
3)Затем очищаю таблицу.
4)Запускаю рекурсивную функцию для выбора дерева(т.е. сначала id_parent=0, затем запускается со значение id строки (чтобы детей выбрать) и т.д.), каждую строку заношу во временную таблицу + указываю глубину её вложенности в отдельное поле.
5)Затем обычные процедуры по подсчету кол-ва страниц и выбора нужной.
6)Выбираю из временной таблицы нужные строки.
Как можно ещё постранично вывести деревянную структуру?
Если таблица будет порядка 1000 строк - соответственно стока перекочует во временную - это сильно будет тормозитть?
2 и 3 пункт можно выкинуть, а в дочернем классе сделать обязательное описание временной таблицы.
есть список позиций, которые располагаются в виде дерева (наподобие сообщений в форумах). Структурируются позиции в виде дерева по двум полям в БД: id и id_parent (если id_parent=0 - корневой элемент). Дерево может быть неограниченной вложенности. Нужно вывести это список в виде дерева на сайте с постраничным разбиением
Ещё один важный момент - я не знаю ни структуры таблицы, ни сортировки, ни условия where - т.е. дочерний класс подсовывает массив с описанием полей, а я по этим полям строю запрос.
Что я хочу для простого (для меня) решения задачи:
1)Составляю запрос на выборку позиций.
2)По этому запросу создаю временную таблицу CREATE TEMPORARY TABLE tbl_name SELECT ну и далее мой запрос, ограниченный LIMIT 1
3)Затем очищаю таблицу.
4)Запускаю рекурсивную функцию для выбора дерева(т.е. сначала id_parent=0, затем запускается со значение id строки (чтобы детей выбрать) и т.д.), каждую строку заношу во временную таблицу + указываю глубину её вложенности в отдельное поле.
5)Затем обычные процедуры по подсчету кол-ва страниц и выбора нужной.
6)Выбираю из временной таблицы нужные строки.
Как можно ещё постранично вывести деревянную структуру?
Если таблица будет порядка 1000 строк - соответственно стока перекочует во временную - это сильно будет тормозитть?
2 и 3 пункт можно выкинуть, а в дочернем классе сделать обязательное описание временной таблицы.