> Выкачивай на клиента только ID, PARENT, все 15000.
> (15000*sizeof(int)*2)=120kb
> Вычисляй рекурсию на любом своем любимом языке программирования.

Был такой вариант. Не хочу выносить на клиента никакую логику. Тем
более, что есть 2 клиента, один полноценный графический, а второй
сейчас ещё только разрабатывается должен быть лёгкий вебовый, и ещё --
скрипты, которые дёргают базу по крону, в часы N, и генерируют отчёты,
так что всё это ещё и в них придётся делать. Объём кода значительно
увеличится. Чаще нужно выбирать небольшие поддеревья меньше 1000
узлов, поэтому тащить клиенту всё дерево не хочется, так как есть еще
и связанные с узлами дерева данные, хотя их и не так много, но 120-ю
kb тут уже не обойдётся. А если выбирать только идентификаторы то
потом, для отображения некоторого поддерева виде таблицы или дерева же
придётся выполнять select ... where ... in (/* куча Ид некоторого
поддерева */), слишком всё это не удобно, проще UDF переписать.

> Имей в виду, что рекурсия в СП и рекурсия в триггерах - разные вещи.

А можно поподробнее или ссылочку?

Ответить