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

Ситауция такая: ведется работа с различными юридическими лицами, некоторые из которых - члены групп компаний, а эти группы иногда являются частью б о льших групп. В принципе, глубина может быть большей (например, москоские отделения орг-ии "Х" состоят в группе компаний "Х-Москва", кот., в свою очередь - в группе "Х Russia", а та - в "Х Europe"). При этом, многие организации не состоят в группах. Например:

Организации: о1, о2, о3, о4, о5, о6;
о1 и о2 - в группе г1, о3 и о4 - в группе г2, группа г2 и организация о5 - в группе г3, о6 - не состоит ни в каких группах.

Регулярные задачи - выяснить, в какой группе (-ах) состоит организация и, наоборот, выяснить, какие организации состоят в определенной группе.

Вопрос - как было бы правильнее хранить эту информацию в базе данных? Работа с этими структурами ведется процедурами и функциями в самой базе.

Спасибо!
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536429
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно ли одновременное нахождение в двух разных ветках дерева ?
Если нет, то нужны поля ID, ParentID.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536453
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVВозможно ли одновременное нахождение в двух разных ветках дерева ?
Если нет, то нужны поля ID, ParentID.И упремся в рекурсивные вызовы
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536470
Bazzilic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV
Нет, невозможно
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536523
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если данные этой таблицы модифицируются относительно редко, а в основном выборки на чтение, то разумно сделать см. пункт Множественная модель деревьев
С уважением, Naf
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536545
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazzilic,

У Вас, в принципе, вложенность организаций и принадлежность к группам не связаны.

Потому при создании организации наследуйте от родителя ее группы и все.


Или же не все сказано. Например это CRM со сложными зависимостями и периодически все меняется =)
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536547
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafLSVВозможно ли одновременное нахождение в двух разных ветках дерева ?
Если нет, то нужны поля ID, ParentID.И упремся в рекурсивные вызовы
а почему "упремся"? Речь же идет не о бетонной стене, а о банальном рекурсивном вызове.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536553
Bazzilic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf
Это невозможно же читать :) Там, кажется, гугл-переводчик автор текста...
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536559
Bazzilic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl
А как учитывать вложенность групп тогда?
И что такое CRM?
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536595
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmNafLSVВозможно ли одновременное нахождение в двух разных ветках дерева ?
Если нет, то нужны поля ID, ParentID.И упремся в рекурсивные вызовы
а почему "упремся"? Речь же идет не о бетонной стене, а о банальном рекурсивном вызове.
Запросы будут тяжелыми и многократными, например хотим получить продажи с учетом иерархии:

Код: plaintext
1.
2.
3.
4.
5.
6.
Европа 1500
 Россия 1000
    Москва  700
    Питер   300
 Украина 500
    Киев    300
    Харьков 200
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536617
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazzilic Naf
Это невозможно же читать :) Там, кажется, гугл-переводчик автор текста...Нормальное чтиво, есть оригинал на английском, поищи
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36536927
Deamon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bazzilic,

Если вложенность групп небольшая, то разумно сделать одно символьное поле.
Фиксировать дерево в виде "<root_id>\<child_id1>\<child_id2>\....\<end_id>"
Поиск в таком "дереве", перемещение узлов/веток - не проблема.
Поддержка целостности - на триггерах.
Это если вложенность действительно небольшая. И если задача действительно ограничивается размещением элемента в какой-либо группе.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36537127
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ситауция такая

Наймите нормального аналитика, который расскажет вам, как и почему образуются группы компаний и каким бывает членство в них. Структура сразу станет понятной.

Hint: есть такая лавчонка по имени Philips, у нее около 2 тыс. обособленных бизнес-единиц и несколько вертикальных иерархий.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36537261
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запросы будут тяжелыми и многократными, например хотим получить продажи с учетом иерархии:Не обязательно. Можно иметь отдельную таблицу, в кот. есть все пары значений ID, Parent, т.е. полный путь от листа до корня дерева. По связке с этой таблицей можно одним простым запросом получить итоги по любой подветке.
Эту таблицу можно рулить триггерами. Она будет большой, но узкой.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36537994
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНе обязательно. Можно иметь отдельную таблицу, в кот. есть все пары значений ID, Parent, т.е. полный путь от листа до корня дерева. По связке с этой таблицей можно одним простым запросом получить итоги по любой подветке.
Эту таблицу можно рулить триггерами. Она будет большой, но узкой.
+1
для статичных деревьев с запросами вверх-вниз по иерархии лучше нет.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36538034
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осталось выяснить, поддерживает ли сервер ТСа рекурсивные запросы.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36538040
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglОсталось выяснить, поддерживает ли сервер ТСа рекурсивные запросы.
для отчетов и расчетов на сервере можно без рекурсии вполне обойтись.
...
Рейтинг: 0 / 0
Хранение неглубоких деревьев
    #36538065
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение неглубоких деревьев
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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