|
|
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Всем привет. Ситауция такая: ведется работа с различными юридическими лицами, некоторые из которых - члены групп компаний, а эти группы иногда являются частью б о льших групп. В принципе, глубина может быть большей (например, москоские отделения орг-ии "Х" состоят в группе компаний "Х-Москва", кот., в свою очередь - в группе "Х Russia", а та - в "Х Europe"). При этом, многие организации не состоят в группах. Например: Организации: о1, о2, о3, о4, о5, о6; о1 и о2 - в группе г1, о3 и о4 - в группе г2, группа г2 и организация о5 - в группе г3, о6 - не состоит ни в каких группах. Регулярные задачи - выяснить, в какой группе (-ах) состоит организация и, наоборот, выяснить, какие организации состоят в определенной группе. Вопрос - как было бы правильнее хранить эту информацию в базе данных? Работа с этими структурами ведется процедурами и функциями в самой базе. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 11:17 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Возможно ли одновременное нахождение в двух разных ветках дерева ? Если нет, то нужны поля ID, ParentID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 11:45 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
LSVВозможно ли одновременное нахождение в двух разных ветках дерева ? Если нет, то нужны поля ID, ParentID.И упремся в рекурсивные вызовы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 11:53 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
LSV Нет, невозможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 11:57 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
если данные этой таблицы модифицируются относительно редко, а в основном выборки на чтение, то разумно сделать см. пункт Множественная модель деревьев С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:11 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Bazzilic, У Вас, в принципе, вложенность организаций и принадлежность к группам не связаны. Потому при создании организации наследуйте от родителя ее группы и все. Или же не все сказано. Например это CRM со сложными зависимостями и периодически все меняется =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:15 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
NafLSVВозможно ли одновременное нахождение в двух разных ветках дерева ? Если нет, то нужны поля ID, ParentID.И упремся в рекурсивные вызовы а почему "упремся"? Речь же идет не о бетонной стене, а о банальном рекурсивном вызове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:16 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Naf Это невозможно же читать :) Там, кажется, гугл-переводчик автор текста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:17 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Siemargl А как учитывать вложенность групп тогда? И что такое CRM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:19 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
iscrafmNafLSVВозможно ли одновременное нахождение в двух разных ветках дерева ? Если нет, то нужны поля ID, ParentID.И упремся в рекурсивные вызовы а почему "упремся"? Речь же идет не о бетонной стене, а о банальном рекурсивном вызове. Запросы будут тяжелыми и многократными, например хотим получить продажи с учетом иерархии: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:30 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Bazzilic Naf Это невозможно же читать :) Там, кажется, гугл-переводчик автор текста...Нормальное чтиво, есть оригинал на английском, поищи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 12:35 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Bazzilic, Если вложенность групп небольшая, то разумно сделать одно символьное поле. Фиксировать дерево в виде "<root_id>\<child_id1>\<child_id2>\....\<end_id>" Поиск в таком "дереве", перемещение узлов/веток - не проблема. Поддержка целостности - на триггерах. Это если вложенность действительно небольшая. И если задача действительно ограничивается размещением элемента в какой-либо группе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 13:55 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
> Ситауция такая Наймите нормального аналитика, который расскажет вам, как и почему образуются группы компаний и каким бывает членство в них. Структура сразу станет понятной. Hint: есть такая лавчонка по имени Philips, у нее около 2 тыс. обособленных бизнес-единиц и несколько вертикальных иерархий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 14:40 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Запросы будут тяжелыми и многократными, например хотим получить продажи с учетом иерархии:Не обязательно. Можно иметь отдельную таблицу, в кот. есть все пары значений ID, Parent, т.е. полный путь от листа до корня дерева. По связке с этой таблицей можно одним простым запросом получить итоги по любой подветке. Эту таблицу можно рулить триггерами. Она будет большой, но узкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 15:08 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
LSVНе обязательно. Можно иметь отдельную таблицу, в кот. есть все пары значений ID, Parent, т.е. полный путь от листа до корня дерева. По связке с этой таблицей можно одним простым запросом получить итоги по любой подветке. Эту таблицу можно рулить триггерами. Она будет большой, но узкой. +1 для статичных деревьев с запросами вверх-вниз по иерархии лучше нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 18:41 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
Осталось выяснить, поддерживает ли сервер ТСа рекурсивные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 19:04 |
|
||
|
Хранение неглубоких деревьев
|
|||
|---|---|---|---|
|
#18+
SiemarglОсталось выяснить, поддерживает ли сервер ТСа рекурсивные запросы. для отчетов и расчетов на сервере можно без рекурсии вполне обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2010, 19:09 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36536553&tid=1542793]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
184ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 540ms |

| 0 / 0 |
