TUI design

advertisement
TUI design
База представляет собой граф и состоит из вершин (Node) и ребер (Relation). Общая структура БД представлена на
рисунке. На нем представлены все виды вершин и основные виды ребер.
EntityType
Вершина, соответствующая типу объекта. Относится к метаданным. Имеет связь (parent) с родительским типом (кроме
самого верхнего по иерархии типа).
Properties
Name
isAbstract
Default value
false
Description
Entity могут иметь только неабстрактный тип.
Attribute
Вершина, соответствующая типу свойства. Относится к метаданным. Связан с EntityType с помощью связи Bind.
Properties
Name
isSystem
attrType
multiple
Default
value
false
false
Description (if isSystem=false)
Значение любое кроме true или отсутствует
Тип атрибута (число, строка, дата, ссылка на объект или на другую вершину БД)
Если multiple=true, то система может для каждого объекта хранить несколько значений
данного параметра.
Bind
Связь между вершинами метаданных (направление от EntityType к Attribute). Отражает, какими свойствами могут
обладать объекты различных типов. На один атрибут могут ссылаться сразу несколько объектных типов. Связь атрибута с
типом является наследуемой и передается подтипам. Учитывая, что атрибут может быть «прибинжен» к нескольким
типам, может оказаться, что несколько родителей какого-то типа содержат один и тот же атрибут. В таком случае в
качестве свойств связи берутся properties с связи, ведущей к самому младшему типу. Это позволяет убирать
(«отбинживать») некоторые атрибуты с подтипа, не убирая их с родительского типа, используя особое свойство на связи
(unbind).
Entity
Вершина, соответствующая объекту. Каждая такая вершина имеет ровно одну связь (type) с EntityType. Кроме того
большинство объектов имеют связь (parent) с родительским Entity.
Parameter
Если EntityType имеет множество ссылающихся на него Entity и множество относящихся к нему Attribute, то каждая пара
Entity и Attribute обладают «общей» вершиной Parameter. Причем этот параметр ссылается на них связями entity и
attribute соответственно. Далее говоря о property вершины Parameter будем иметь ввиду property вершины Attribute.
Value
Если для Parameter multiple=false, то на каждый Parameter может ссылаться только один Value. В случае если
multiple=true, то их может быть несколько. Само значение Value хранит разными способами в зависимости от типа
атрибута (свойство attrType на Attribute). Если атрибут строковый, числовой или дата, то значение хранится в виде строки
в свойстве value. Если атрибут является ссылкой (ассоциацией), то значение хранится не в самой вершине Value, а как
ссылка Value на сущность, на которую указывает ссылка.
Download