powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Иерархический справочник из обычных
5 сообщений из 5, страница 1 из 1
Иерархический справочник из обычных
    #37180538
Доброго времени суток, форумчане!

Имеем вот такие вот справочники:


Вроде все правильно.
Но на клиенте пользователи хотят видеть эти справочники в виде master-дерево+detail-таблица.
Допустим в таблицах хранятся след данные:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
kind;
+--------+-----------+
| idkind | titlekind |
+--------+-----------+
|      1 | kind01    |
|      2 | kind02    |
|      3 | kind03    |
|      4 | kind04    |
|      5 | kind05    |
|      6 | kind06    |
|      7 | kind07    |
|      8 | kind08    |
|      9 | kind09    |
|     10 | kind10    |
+--------+-----------+
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
category;
+------------+---------------+
| idcategory | titlecategory |
+------------+---------------+
|          1 | category01    |
|          2 | category02    |
|          3 | category03    |
|          4 | category04    |
|          5 | category05    |
|          6 | category06    |
|          7 | category07    |
|          8 | category08    |
|          9 | category09    |
|         10 | category10    |
+------------+---------------+
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
thing;
+---------+------------+------------+--------+
| idthing | titlething | idcategory | idkind |
+---------+------------+------------+--------+
|       1 | thing1     |          1 |      1 |
|       2 | thing2     |          1 |      2 |
|       3 | thing3     |          1 |     10 |
|       4 | thing4     |          2 |      1 |
|       5 | thing5     |          2 |      2 |
|       6 | thing6     |          3 |      1 |
|       7 | thing7     |          9 |      1 |
|       8 | thing8     |          4 |      4 |
|       9 | thing9     |          1 |      9 |
|      10 | thing10    |          5 |      5 |
|      11 | thing11    |          1 |      1 |
|      12 | thing12    |          3 |      1 |
|      13 | thing13    |          1 |      2 |
+---------+------------+------------+--------+

Нужно получить такое вот дерево, которое будет master:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
+kind01
|  +--category01
|  +--category02
|  +--category03
|  +--category09
|
+kind02
|  +--category01
|  +--category02
|
+kind10
|  +--category01
|
+kind04
|  +--category04
|
+kind09
|  +--category01
|
+kind05
|  +--category05

И при выборе category detail должен показывать все thing, подчиненные выбранной паре kind/category.

Собственно вопрос: можно ли средствами SQL получить view, в котором будет иерархическая структура? Если да, то как? Если нет, то посоветуйте структуру таблиц, чтобы удовлетворить пользователя?
...
Рейтинг: 0 / 0
Иерархический справочник из обычных
    #37180567
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваша СУБД поддерживает конструкцию ROLLUP?
...
Рейтинг: 0 / 0
Иерархический справочник из обычных
    #37180576
NafВаша СУБД поддерживает конструкцию ROLLUP?

Забыл указать СУБД PostgreSQL.
В ней, насколько я понимаю, такой функционал пока не поддерживается.
...
Рейтинг: 0 / 0
Иерархический справочник из обычных
    #37180578
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структуру из трех фиксированных уровней можно получить без проблем. Хоть на одной таблице, хоть на трех.

Отображать дерево на клиенте чем будете ?
...
Рейтинг: 0 / 0
Иерархический справочник из обычных
    #37180607
П-ЛОтображать дерево на клиенте чем будете ?
Qt: <своя Model> + QTreeView
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Иерархический справочник из обычных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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