|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
Требуется создать рубрикатор(хранилище) объектов и отображать его в различных срезах Например: Хранилище/Тип Документа/Год/Месяц Хранилище/Тип Документа/Статус документа Хранилище/Год/Месяц/Тип Документа Хранилище/Организация/Тип Документа Подобная вещь реализована в Optima Workflow Многие наверное также видели как можно переключаться между различными видами дерева в оракловом EM (by sheme, by object) думаю понятно объяснил так вот, какие мысли будут по проектированиии подобной структуры? у меня пока мысль только для среза хранить свое дерево, т.е. таблица объекты ============= объект_id таблица дерево объектов =================== node_id parent_node_id ТипСреза(идентификатор дерева) объект_id левый_индекс правый_индекс но тут объем данных будет очень не хилый, и поддерживать эти деревья очень не просто будет, особенно если учесть что срезы могут добавляться в процессе эксплуатации. Есть еще мысль вообще не хранить дерево, а стоить его динамически в соответствии со значениями атрибутов. Но в этом случае как быть с папками, которые могут создаваться пользователями в хранилищах. Какие будут соображения по этому поводу? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 16:09 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
up ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2005, 12:07 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
Сам задавался такой задачей. В голову приходило построить все возможные деревья проанализировав структуру связей между классами (типами) объектов. Но, очевидно, как и любого обощенного подхода есть свои минусы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 18:29 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
Роман Дынник таблица дерево объектов =================== node_id parent_node_id ТипСреза(идентификатор дерева) объект_id левый_индекс правый_индекс но тут объем данных будет очень не хилый, и поддерживать эти деревья очень не просто будет, особенно если учесть что срезы могут добавляться в процессе эксплуатации. node_id и parent_node_id должны ссылаться НЕ на объекты а на типы объектов. тогда объемы будут не такими уж большими ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 18:32 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
продолжая пример Роман Дынник Хранилище/Тип Документа/Год/Месяц Хранилище/Тип Документа/Статус документа Хранилище/Год/Месяц/Тип Документа Хранилище/Организация/Тип Документа Хранилищ а /Тип ы Документ ов / Хранилищ а /Тип ы Документ ов /Статус ы документ ов Хранилищ а /Организац ии /Тип ы Документ ов Как быть с датами Год, Месяц не знаю. Далее можно построить соотв. деревья экземпляров классов. ИМХО При этом должна быть "сквозная" идентификация объктов (что-то вроде GUID). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 18:38 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
M.Kap. Роман Дынник таблица дерево объектов =================== node_id parent_node_id ТипСреза(идентификатор дерева) объект_id левый_индекс правый_индекс но тут объем данных будет очень не хилый, и поддерживать эти деревья очень не просто будет, особенно если учесть что срезы могут добавляться в процессе эксплуатации. node_id и parent_node_id должны ссылаться НЕ на объекты а на типы объектов. тогда объемы будут не такими уж большими ИМХО. нет... есть объект объект_id, он может присутствовать в разных деревьях таблица дерево объектов представляет собой просто узлы дерева, где узел уже ссылается на конкретный объект из плоской таблицы объекты. причем здесь ссылка на типы? конкретное дерево может только характеризовать некоторое подмножество типов . ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 18:55 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
а сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2005, 18:56 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
Мы говорим немного о разных вещах. Я подрузамевал что существует много объектов определенного типа, и все они хранятся в своих таблицах. Так например: Хранилище А, Хранилище В. Тип документа: Тип I, Тип II. Тогда деревья имеют такую структуру. Хранилище А \ Тип I Хранилище А \ Тип II Хранилище В \ Тип II Хранилище B \ Тип II и Тип I \ Хранилище A Тип I \ Хранилище B ... и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 10:29 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
Роман Дынника сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity) таблица "объекты" может быть вьюшкой из всех необходимых таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 10:30 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
M.Kap. Роман Дынника сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity) таблица "объекты" может быть вьюшкой из всех необходимых таблиц. может, это зависит от стратегии реализации наследования в БД. она может быть реализована в виде дублирования общих атрибутов во всех сущностях (тогда vobject стротся на select union all), а может в виде связи 1-к-1 к таблице object. У каждого подхода есть свои плюсы и минусы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 12:52 |
|
Рубрикатор объектов в различных срезах
|
|||
---|---|---|---|
#18+
Роман Дынник M.Kap. Роман Дынника сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity) таблица "объекты" может быть вьюшкой из всех необходимых таблиц. может, это зависит от стратегии реализации наследования в БД. она может быть реализована в виде дублирования общих атрибутов во всех сущностях (тогда vobject стротся на select union all), а может в виде связи 1-к-1 к таблице object. У каждого подхода есть свои плюсы и минусы. в приведенном выше примере наследования (в смысле ООП) нет. Вряд ли "Хранилища" как то наследуют "Типы документов" (или наоборот). Имеют место связи, как один-к одному так и один-ко многим. Или же ты (надеюсь ты (надеюсь ты (надеюсь ты... не против такого обращения :) под наследованием имел ввиду наследование полей (аттрибутов) объектов ? Даже в этом случае, ИМХО, для шибко разнородных объектов наследование незначительно. И, ИМХО, не стоит наворачивать в РСУБД эту функциональность (наследование). Для этого, насколько я понимаю, предназначенны ОБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2005, 13:08 |
|
|
start [/forum/topic.php?fid=33&msg=33279804&tid=1549555]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 391ms |
0 / 0 |