powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Рубрикатор объектов в различных срезах
12 сообщений из 12, страница 1 из 1
Рубрикатор объектов в различных срезах
    #33119960
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется создать рубрикатор(хранилище) объектов и отображать его в различных срезах
Например:
Хранилище/Тип Документа/Год/Месяц
Хранилище/Тип Документа/Статус документа
Хранилище/Год/Месяц/Тип Документа
Хранилище/Организация/Тип Документа
Подобная вещь реализована в Optima Workflow

Многие наверное также видели как можно переключаться между различными видами дерева в оракловом EM (by sheme, by object)
думаю понятно объяснил

так вот, какие мысли будут по проектированиии подобной структуры?
у меня пока мысль только для среза хранить свое дерево, т.е.
таблица объекты
=============
объект_id

таблица дерево объектов
===================
node_id
parent_node_id
ТипСреза(идентификатор дерева)
объект_id
левый_индекс
правый_индекс

но тут объем данных будет очень не хилый, и поддерживать эти деревья очень не просто будет, особенно если учесть что срезы могут добавляться в процессе эксплуатации.

Есть еще мысль вообще не хранить дерево, а стоить его динамически в соответствии со значениями атрибутов. Но в этом случае как быть с папками, которые могут создаваться пользователями в хранилищах.

Какие будут соображения по этому поводу?
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33273198
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33279804
M.Kap.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам задавался такой задачей.

В голову приходило построить все возможные деревья проанализировав

структуру связей между классами (типами) объектов. Но, очевидно, как и любого

обощенного подхода есть свои минусы.
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33279813
M.Kap.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник
таблица дерево объектов
===================
node_id
parent_node_id
ТипСреза(идентификатор дерева)
объект_id
левый_индекс
правый_индекс

но тут объем данных будет очень не хилый, и поддерживать эти деревья очень не просто будет, особенно если учесть что срезы могут добавляться в процессе эксплуатации.

node_id и parent_node_id должны ссылаться НЕ на объекты а на типы объектов.
тогда объемы будут не такими уж большими ИМХО.
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33279827
M.Kap.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжая пример
Роман Дынник
Хранилище/Тип Документа/Год/Месяц
Хранилище/Тип Документа/Статус документа
Хранилище/Год/Месяц/Тип Документа
Хранилище/Организация/Тип Документа

Хранилищ а /Тип ы Документ ов /
Хранилищ а /Тип ы Документ ов /Статус ы документ ов
Хранилищ а /Организац ии /Тип ы Документ ов

Как быть с датами Год, Месяц не знаю.

Далее можно построить соотв. деревья экземпляров классов.

ИМХО При этом должна быть "сквозная" идентификация объктов (что-то вроде GUID).
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33279870
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
M.Kap. Роман Дынник
таблица дерево объектов
===================
node_id
parent_node_id
ТипСреза(идентификатор дерева)
объект_id
левый_индекс
правый_индекс

но тут объем данных будет очень не хилый, и поддерживать эти деревья очень не просто будет, особенно если учесть что срезы могут добавляться в процессе эксплуатации.

node_id и parent_node_id должны ссылаться НЕ на объекты а на типы объектов.
тогда объемы будут не такими уж большими ИМХО.

нет...
есть объект объект_id, он может присутствовать в разных деревьях
таблица дерево объектов представляет собой просто узлы дерева, где узел уже ссылается на конкретный объект из плоской таблицы объекты.
причем здесь ссылка на типы?
конкретное дерево может только характеризовать некоторое подмножество типов .
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33279872
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity)
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33280499
M.Kap.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы говорим немного о разных вещах.

Я подрузамевал что существует много объектов определенного типа, и все они хранятся в своих таблицах.

Так например: Хранилище А, Хранилище В.

Тип документа: Тип I, Тип II.

Тогда деревья имеют такую структуру.

Хранилище А \ Тип I
Хранилище А \ Тип II
Хранилище В \ Тип II
Хранилище B \ Тип II

и

Тип I \ Хранилище A
Тип I \ Хранилище B
...
и т.д.
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33280503
M.Kap.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынника сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity)

таблица "объекты" может быть вьюшкой из всех необходимых таблиц.
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33280980
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
M.Kap. Роман Дынника сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity)
таблица "объекты" может быть вьюшкой из всех необходимых таблиц.
может, это зависит от стратегии реализации наследования в БД.
она может быть реализована в виде дублирования общих атрибутов во всех сущностях (тогда vobject стротся на select union all), а может в виде связи 1-к-1 к таблице object.
У каждого подхода есть свои плюсы и минусы.
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33281037
M.Kap.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник M.Kap. Роман Дынника сквозная идентификация как раз в таблице объекты (объект_id - GUID, и даже может быть int identity)
таблица "объекты" может быть вьюшкой из всех необходимых таблиц.
может, это зависит от стратегии реализации наследования в БД.
она может быть реализована в виде дублирования общих атрибутов во всех сущностях (тогда vobject стротся на select union all), а может в виде связи 1-к-1 к таблице object.
У каждого подхода есть свои плюсы и минусы.

в приведенном выше примере наследования (в смысле ООП) нет. Вряд ли "Хранилища" как то наследуют "Типы документов" (или наоборот).
Имеют место связи, как один-к одному так и один-ко многим.

Или же ты (надеюсь ты (надеюсь ты (надеюсь ты... не против такого обращения :) под наследованием имел ввиду наследование полей (аттрибутов) объектов ? Даже в этом случае, ИМХО, для шибко разнородных объектов наследование незначительно. И, ИМХО, не стоит наворачивать в РСУБД эту функциональность (наследование). Для этого, насколько я понимаю, предназначенны ОБД.
...
Рейтинг: 0 / 0
Рубрикатор объектов в различных срезах
    #33289203
skorohod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.ibase.ru/devinfo/oop_rdbms.htm
- описанный там подход вашу задачу решает (таблицы "objects" и "links").
Хотя наверняка вы эту статью знаете.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Рубрикатор объектов в различных срезах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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