> Может я неправильно понимаю, но почему бы не хранить номер уровня для
> каждого узла, заполнять его при вставке триггером? Тогда глубина,
> относительно заданного узла = глубина просматриваемого - глубина
> заданного. И рекурсия не нужна, просто цикл по всем записям.

Узел от которого считается глубина множества подузлов задаётся
динамически во время запроса, нет нкакой возможности угадать этот
самый <<заданный>> узел, в момент вставки. Единственный способ ---
хранить глубину относительно каждого родительского узла. Но если узел
перемещается, приходится всё пересчитывать.

> З.Ы. Если же речь идёт о длине пути от заданного узла, тогда нужно
> хранить кодированный путь от корня до каждого узла и иметь функцию,

Не катит, так ка узел относительно которого задётся поиск выбирается
произвольно.

> вычисляющего общего для двух сравниваемых узлов предка и складывающего
> длины. Для двоичного дерева это достаточно просто, для других - сложнее

Возможно затык в производитльности, узлов на данный момент более
15000, местами образуются длинные <<списки>>.

> тем, что при такой глубине вложенности может просто не хватить
> varchar'а.

Не хватает, и опять же производительность.

Ответить