Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.26;
Скачать: CL | DM;

Вниз

MSSQL и деревья   Найти похожие ветки 

 
Michail Dalakov ©   (2003-12-28 16:40) [0]

В Oracle можно запросом вернуть древовидную структуру или определенную ветку дерева, возможно ли такое в MSSQL


 
just me   (2003-12-28 16:48) [1]

буквально пару дней назад была об этом ветка, поищи в архиве


 
Michail Dalakov ©   (2003-12-28 17:05) [2]

To [1],
Спасибо нашел, но честно говоря мало что полезного, насколько, я понял деревья строились на клиенте, и насколько я понял имея в базе два поля ID и PARENT_ID MSSQL не позволяет построить иерархическую структуру одним SQL запросом.


 
Delirium ©   (2003-12-28 17:29) [3]

Совершенно верно, в MSSQL нет базовых операторов для развёртки деревьев, однако простенький цикл и временная таблица решают эту проблему ни чуть не хуже Oracle.


 
Michail Dalakov ©   (2003-12-28 17:54) [4]

To Delirium
В таком случае лучше завести HASH поле в котором будет храниться путь и строить дерево на клиенте за один проход


 
Delirium ©   (2003-12-28 18:00) [5]

Такое поле надо будет поддерживать, что обязательно скажется на производительности... Хотя у каждого свои подходы 8)


 
Michail Dalakov ©   (2003-12-28 18:30) [6]

Конечно, надо поддерживать, если нет групповых операций над узлами, то уменьшение производительности несущественно, это и есть та плата за поледующее быстродействие - построение за один проход, если таблица довольно большая и не использовать SmartLoad, то это единственный вариант


 
Delirium ©   (2003-12-28 18:34) [7]

Увы, в тех задачах, где мне приходилось строить деревья, узлы не только меняли родителей на одном уровне, но и меняли сам уровень. Так что оставалось только оринетироваться на идентификатор предка и потоянно "бегать" вверх и вниз :)

P.S. Я пошёл пить водку, с новым годом! ;)


 
Michail Dalakov ©   (2003-12-28 18:43) [8]

Всем спасибо!
Всех с новым годом!



Страницы: 1 вся ветка

Текущий архив: 2004.01.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
3-83099
Фетисов
2003-12-29 12:52
2004.01.26
Инсталляция InterBase5.6 под Windows 2000


4-83309
KADAN
2003-11-17 22:14
2004.01.26
SetWindowsHookEx(WH_KEYBOARD, 0)


6-83223
Raptorus
2003-11-20 16:33
2004.01.26
Естьли достойный конкурент Indy-компонентам для работы с сокетами


4-83310
Sirakuz
2003-11-20 16:33
2004.01.26
запись в файл в удалённой расшаренной папке


1-83130
LordBTR
2004-01-15 15:18
2004.01.26
Формирование запроса и параллельная работа таймера.