powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Построение дерева
3 сообщений из 3, страница 1 из 1
Построение дерева
    #32527369
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть иерархическая таблица c полями fID, fText и fParentID.
Подскажите, пожалуйста(если можно примерчиком), как построить по ней дерево, если заранее не известно количество уровней.
...
Рейтинг: 0 / 0
Построение дерева
    #32527394
Наиболее часто встречаемый мной вариант - это дополнительное построение, котороу по-умному называют "транзитивное замыкание" (не проверял праивльно ли такое название). Суть в том, что к таблице с иерархическим рубрикатором создается еще одна таблица с доп. построением вида:
childId, parentId, depth
( обычно дополняется по мере добавления рубрик и уменьшается по мере удаления, как правило, при переносе рубрики из одного родителя в другого проще заново перестроить полностью)

Наглядный пример заполнения этой таблицы:
[tblRubric] id, name, parentId
[tblRubricEx] childId, parentId, depth

Пусть в tblRubric имеются следующие записи
1, Главная, 0
2, О компании, 1
3, История, 2
4, Контакты, 1

Тогда вот так выглядит tblRubricEx
1,1,0
2,1,1
3,2,2
2,2,0
3,2,1
3,3,0
4,1,1
4,4,0

Как вариант, можно в хр. процедуре сгенерить запрос с испольованием for xml explicit, который затем выполнить при помощи sp_executesql

На выходе получаем XML структуру нашего дерева всего за n селектов (n - максимальная глубина)

Данный подход работал на гос.классификаторе видов деятельности.
...
Рейтинг: 0 / 0
Построение дерева
    #32530893
Турист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за полезную информацию.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Построение дерева
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]