|
Дерево из плоской таблицы |
☑ |
0
Stim
11.06.19
✎
15:23
|
Все строки дерева лежат в плоской таблице Ид ИдРодителя
Как максимально экономно(таблица оч большая) обойти всю таблицу и собрать дерево из строк?
|
|
1
ДенисЧ
11.06.19
✎
15:25
|
Пихнуть в запрос и получить оттуда через ИТОГИ
|
|
2
Stim
11.06.19
✎
15:30
|
(1) итоги по какому полю?
|
|
3
RomanYS
11.06.19
✎
15:45
|
(2) ИдРодителя конечно же. Только за один проход только один уровень можно просто собрать.
|
|
4
mistеr
11.06.19
✎
15:47
|
Пихнуть в СКД, описать иерархию в связях и выгрузить в ДЗ.
А что значит "экономно" в данном случае7
|
|
5
Вафель
11.06.19
✎
15:47
|
дерево для чего нужно? вывести в на форму?
|
|
6
mistеr
11.06.19
✎
15:47
|
(1) В запросе получится только, если это "естественная" иерархия (ссылки на справочник).
|
|
7
Вафель
11.06.19
✎
15:48
|
если на форму не нужно выводить, достаточно отсортировать и в обходе смотреть на смену родителя
|
|
8
Stim
11.06.19
✎
15:50
|
(3) вот и да. А мне неизвестно сколько всего там уровней
|
|
9
Stim
11.06.19
✎
15:50
|
(4) экономно = наименее ресурсозатратно
|
|
10
Stim
11.06.19
✎
15:50
|
(5) да, нужно вывести на форму деревом
|
|
11
Вафель
11.06.19
✎
15:59
|
в 1 проход вполне можно сделать иерархическое дерево из таблицы, без НайтиСтроки
|
|
12
Вафель
11.06.19
✎
15:59
|
обходишь, родителей в соответствие кладешь
|
|
13
GRAF_84
11.06.19
✎
16:00
|
|
|
14
Вафель
11.06.19
✎
16:59
|
(13) плохая реализация
|
|
15
Сияющий в темноте
11.06.19
✎
19:20
|
за один проход может не получиться,если родитель лежит после потомков,тогда или таких потомков писать в массив с привязкой к родителю или проходить второй раз,размещая.
|
|
16
Сияющий в темноте
11.06.19
✎
19:25
|
а вообще,три соответствия
первое,элемент в строку дерева для уже размещенных.
вторая элемент и массив дочерних,для еще не размещенных,
третье,все неразмещенные элементы,чтобы к ним цепочки неразмещенных цеплять.
|
|
17
Fram
12.06.19
✎
04:26
|
Я б через рекурсию сделал. А если таблица ооочень большая, то подгружал бы ветки динамически при раскрытии
|
|