Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сформировать вид в виде дерева из таблицы / 7 сообщений из 7, страница 1 из 1
11.01.2020, 22:52
    #39912892
AlKon71
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
Есть таблица

id integer - уникальный номер записи
inum integer - порядковый номер записи в списке детей у текущего родителя (irod)
iurv integer - номер уровня в дереве
irod integer - ссылка на уникальный номер записи родителя

необходимо сформировать дерево.
Подскажите как это можно сделать видом, хранимой процедурой или функцией?
Программно я знаю как организовать циклы и визуальные компоненты (но это очень долго при больших объемах таблиц)
Опыта SQL программирования у меня немного...
...
Рейтинг: 0 / 0
12.01.2020, 01:30
    #39912913
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
AlKon71,

Рекурсивный запрос, вот тут можно почитать: https://habr.com/ru/post/269497/
...
Рейтинг: 0 / 0
12.01.2020, 02:00
    #39912917
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
А лучше если есть возможность использовать ltree.
...
Рейтинг: 0 / 0
12.01.2020, 23:30
    #39913054
AlKon71
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
vyegorov

Спасибо, я понимаю как это сделать, например, на Delphi, Си.
А вот как это сделать на T-SQL (опыта нет).

Troglodit

Спасибо, как я понимаю ltree - это тип поля в таблице?
Не видел ранее такой тип данных.
Но если он есть можно подумать как привести исходную таблицу в такой вид...

Но сейчас задача в том, что таблица(таблицы - более 100 подобных) уже есть...
Их нужно как то переработать в вид дерева...
Понятно, что в БД эти таблицы содержат массу другой информации и связи с другими таблицами, видами и т.п.

Буду искать варианты реализации на SQL сервере, т.к. выносить на уровень клиента - это неправильно и затратно по времени выполнения...
Если кто подскажет или покажет небольшой пример - буду очень признателен...
...
Рейтинг: 0 / 0
12.01.2020, 23:51
    #39913056
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
AlKon71


Troglodit

Спасибо, как я понимаю ltree - это тип поля в таблице?
Не видел ранее такой тип данных.
Но если он есть можно подумать как привести исходную таблицу в такой вид...

Но сейчас задача в том, что таблица(таблицы - более 100 подобных) уже есть...
Их нужно как то переработать в вид дерева...
Понятно, что в БД эти таблицы содержат массу другой информации и связи с другими таблицами, видами и т.п.

Буду искать варианты реализации на SQL сервере, т.к. выносить на уровень клиента - это неправильно и затратно по времени выполнения...
Если кто подскажет или покажет небольшой пример - буду очень признателен...

Даже гуглить уже авторам лень.
ссылка
Просто добавляется поле в ваши таблицы, а дальше магия ltree сделает все за вас.
...
Рейтинг: 0 / 0
13.01.2020, 10:43
    #39913119
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
Troglodit
магия ltree сделает все за вас.

Не всё. Совсем не всё. И совсем не магия, а простой MP. Который ещё сначала надо будет собрать из имеющегося AL.
И MP вместо AL может быть как хорошо, так и ужасно по производительности. При том, одновременно. Смотря что именно с деревом делается.
...
Рейтинг: 0 / 0
13.01.2020, 11:52
    #39913139
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать вид в виде дерева из таблицы
Melkij,
Я не говорю, что это серебряная пуля.
Просто для необходимо сформировать дерево формируется в один простой запрос.
Для моих задач очень подошло, правда пришлось немного голову поломать, чтобы переосмыслить.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сформировать вид в виде дерева из таблицы / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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