Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Несколько представлений дерева, история дерева  [new]
superbluesman
Member

Откуда:
Сообщений: 1017
Уважаемый ALL !!!

Заранее извиняюсь за ясность выражения своих мыслей.
Хотелось бы посоветоваться как мне ЛУЧШЕ запроектировать дерево, точнее не саму таблицу дерева (по варианту ли смежных вершин графа или вложенных множеств - тут я знаю как), а как лучше организовать History изменений дерева и разные его представления.
Поясню:
1. есть (упрощённо) справочник контрагентов (компаний)
id_company INT IDENTITY(1,1)
id_node INT
name_company CHAR(100)

есть дерево:
id_node (INT) id_parent (INT) name_node (CHAR(50))
1 0 Все
2 1 Дальневосточный регион
3 1 Центральный регион
4 3 Поволжье
5 3 Подмосковье

необходимо хранить историю дерева, т.е. на 1 янв.2003г. дерево было таким, как приведено выше, а с 1 марта Дальнеосточный регион подразделяется на Сахалин и Корею, кроме того, в общем случае ветки могут переподчиняться, умирать, добавляться...
Первое, что на ум приходит - завести ещё одну таблицу (таблицу историй) подобно последней, добавив в неё поле даты и как только появиляются намерения каких-либо изменений в основной древовидной таблице в таблицу историй сливать (через триггер) состояние дерева целиком перед изменениями

Кроме того, компании могут иметь несколько древовидных надстроек: с точки зрения территориальности см. выше, с точки зрения классификации госстрахнадзора - компании групиируются по иному, с точки зрения привлекательности бизнеса - по третьему и т.д. И самое главное, что таких классификаций может быть N-ое динамическое количество
30 июл 03, 11:22    [281143]     Ответить | Цитировать Сообщить модератору
 Re: Несколько представлений дерева, история дерева  [new]
4d_monster
Member

Откуда: Москва
Сообщений: 1613
Несколько таблиц:

тДеревья -- тДеревья данные -- name_company

соответственно в
тДеревья - хранятися их названия
тДеревья данные - структура определенного дерева
а для организации истории вводишь поля временного периода действия
30 июл 03, 11:45    [281204]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить