![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MSSQL и деревья
Michail Dalakov © (2003-12-28 16:40:00)
В Oracle можно запросом вернуть древовидную структуру или определенную ветку дерева, возможно ли такое в MSSQL
Michail Dalakov (2003-12-28 18:43:00) [1]
Всем спасибо!
Всех с новым годом!
Delirium (2003-12-28 18:34:00) [2]
Увы, в тех задачах, где мне приходилось строить деревья, узлы не только меняли родителей на одном уровне, но и меняли сам уровень. Так что оставалось только оринетироваться на идентификатор предка и потоянно "бегать" вверх и вниз :)
P.S. Я пошёл пить водку, с новым годом! ;)
Michail Dalakov (2003-12-28 18:30:00) [3]
Конечно, надо поддерживать, если нет групповых операций над узлами, то уменьшение производительности несущественно, это и есть та плата за поледующее быстродействие - построение за один проход, если таблица довольно большая и не использовать SmartLoad, то это единственный вариант
Delirium (2003-12-28 18:00:00) [4]
Такое поле надо будет поддерживать, что обязательно скажется на производительности... Хотя у каждого свои подходы 8)
Michail Dalakov (2003-12-28 17:54:00) [5]
To Delirium
В таком случае лучше завести HASH поле в котором будет храниться путь и строить дерево на клиенте за один проход
Delirium (2003-12-28 17:29:00) [6]
Совершенно верно, в MSSQL нет базовых операторов для развёртки деревьев, однако простенький цикл и временная таблица решают эту проблему ни чуть не хуже Oracle.
Michail Dalakov (2003-12-28 17:05:00) [7]
To [1],
Спасибо нашел, но честно говоря мало что полезного, насколько, я понял деревья строились на клиенте, и насколько я понял имея в базе два поля ID и PARENT_ID MSSQL не позволяет построить иерархическую структуру одним SQL запросом.
just me (2003-12-28 16:48:00) [8]
буквально пару дней назад была об этом ветка, поищи в архиве