Дата актуальности: 06.07.2009
FlexiObjDB
Объектно-ориентированное на
предметную область
долговременное хранилище информации.
Таблица
базы данных: OBJECTS_TREE
Назначение:
Информационная. "Дерево"
объектов/процессов
Системный (внутренний) ID-таблицы
= 13
Список и назначение полей
таблицы.
Имя поля |
Назначение |
Индекс |
Ссылка на
таблицу |
Формат |
Примечание |
ID_THIS |
Уникальный ID строки |
primary |
|
VARCHAR(40) NOT NULL |
вычисляется автоматически,
генераторы:
GEN_OBJTREE_1,
GEN_OBJTREE_2,
GEN_OBJTREE_3 |
ID_PARENT
|
ID родителя (в "дереве") |
+ |
OBJECTS_TREE |
VARCHAR(40) NOT NULL |
|
PARENTS_ID
|
Перечень всех ID предков для
данного объекта/процесса |
|
OBJECTS_TREE |
VARCHAR(4800)
|
вычисляется
автоматически |
ID_TYPE
|
ID типа объектов/процессов |
+ |
L_TYPEOBJ_LIST |
VARCHAR(40) NOT NULL |
|
LEVEL_THIS
|
Уровень иерархии в "дереве" |
+ |
|
INTEGER |
вычисляется
автоматически |
ID_PACKET
|
ID пакета импорта информации |
+ |
|
VARCHAR(40) NOT NULL |
|
ITS_GLOBAL |
Признак "глобальности" |
+ |
|
INTEGER |
вычисляется
автоматически |
ITS_BASE
|
Признак, что объект "базовый"
(>0-базовый) |
+ |
|
INTEGER |
вычисляется
автоматически |
ID_REF
|
ссылка на "базовый"
объект в "дереве" |
+ |
OBJECTS_TREE |
VARCHAR(40) NOT NULL |
вычисляется
автоматически |
ID_REF_NEAR
|
ссылка на ближайший объект
в "дереве" |
+ |
OBJECTS_TREE |
VARCHAR(40) NOT NULL |
|
NUMPP |
Порядковый номер строки в
контексте
родителя (сортировка) |
+ |
|
INTEGER |
|
NAME_MAX |
Наименование объекта/процесса |
|
|
VARCHAR(200) |
|
DATE_1
|
дата начала периода
актуальности |
+ |
|
DATE
|
|
TIME_1
|
время начала периода
актуальности |
|
|
VARCHAR(8)
|
|
DATE_2 |
дата конца периода
актуальности |
+ |
|
DATE
|
|
TIME_2 |
время конца периода
актуальности |
|
|
VARCHAR(8)
|
|
MNEMO_CODE |
Мнемо-имя (идентификатор по
классификации Пользователя) - не
обязательно |
+ |
|
VARCHAR(32) |
Это поле предназначено для
того, чтобы Пользователь мог
классифицировать объекты/процессы по
своему желанию.
Например, здесь может быть :
"Табельный Номер"
"UWI-скважины" и т.д.
Уникальность значения данного поля НЕ
контролируется на уровне триггеров. |
NOTE |
Примечание |
|
|
VARCHAR(200) |
|
INFO |
Детальная информация (MEMO-поле) |
|
|
BLOB SUB_TYPE TEXT SEGMENT SIZE 80 |
MEMO-поле |
IDUSER_CREATE |
ID пользователя, создавшего
эту строку |
+ |
USERS_LIST |
VARCHAR(40) NOT NULL |
|
DATE_CREATE |
Дата-время создания строки |
|
|
DATE NOT NULL |
вычисляется автоматически |
IDUSER_UPDATE |
ID пользователя, последним
изменившего эту строку |
+ |
USERS_LIST |
VARCHAR(40) NOT NULL |
|
DATE_UPDATE |
Дата-время последнего
изменения строки |
|
|
DATE NOT NULL |
вычисляется автоматически |
YESEDIT_THIS
|
|
|
|
INTEGER |
для принудительного
срабатывания триггера "before update" |
YESUPDATE_CHILD
|
|
|
|
INTEGER |
для внутреннего
использования (логика полностью
определяется на уровне триггеров) |
YES_TREE_UPDATE
|
|
|
|
INTEGER |
Для ускорения обновления
информации.
Актуально только в контексте триггера BU_OBJECTSTREE.
Если заведомо известно, что изменения в
данной строке не затронут "иерархичность"
и "ссылочность", то можно
установить значение этого поля в 0.
Это позволит существенно ускорить
обновление информации в данной строке
таблицы.
После срабатывания триггера поле
принудительно принимает значение = 1. |
CREATE TABLE OBJECTS_TREE (ID_THIS VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
ID_PARENT VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
PARENTS_ID VARCHAR(4800) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
ID_TYPE VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
ITS_GLOBAL INTEGER,
LEVEL_THIS INTEGER,
NUMPP INTEGER,
ID_PACKET VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
DATE_1 DATE,
TIME_1 VARCHAR(8) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
DATE_2 DATE,
TIME_2 VARCHAR(8) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
NAME_MAX VARCHAR(200) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
NOTE VARCHAR(200) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
ITS_BASE INTEGER,
ID_REF VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
ID_REF_NEAR VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
INFO BLOB SUB_TYPE TEXT SEGMENT SIZE 80 CHARACTER SET WIN1251,
IDUSER_CREATE VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
DATE_CREATE DATE NOT NULL,
IDUSER_UPDATE VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
DATE_UPDATE DATE NOT NULL,
YESEDIT_THIS INTEGER,
YESUPDATE_CHILD INTEGER,
YES_TREE_UPDATE INTEGER,
PRIMARY KEY (ID_THIS));
Поддержка ссылочной
целостности.
Индексы.
CREATE INDEX OBJTREE_DATE1 ON OBJECTS_TREE(DATE_1);
CREATE INDEX OBJTREE_DATE2 ON OBJECTS_TREE(DATE_2);
CREATE INDEX OBJTREE_IDPARENT ON OBJECTS_TREE(ID_PARENT);
CREATE INDEX OBJTREE_IDREF ON OBJECTS_TREE(ID_REF);
CREATE INDEX OBJTREE_IDREFNEAR ON OBJECTS_TREE(ID_REF_NEAR);
CREATE INDEX OBJTREE_IDTYPE ON OBJECTS_TREE(ID_TYPE);
CREATE INDEX OBJTREE_IDPACKET ON OBJECTS_TREE(ID_PACKET);
CREATE INDEX OBJTREE_IDUSR_CR ON OBJECTS_TREE(IDUSER_CREATE);
CREATE INDEX OBJTREE_IDUSR_UPD ON OBJECTS_TREE(IDUSER_UPDATE);
CREATE INDEX OBJTREE_ITSBASE ON OBJECTS_TREE(ITS_BASE);
CREATE INDEX OBJTREE_ITSGLOB ON OBJECTS_TREE(ITS_GLOBAL);
CREATE INDEX OBJTREE_LEVEL ON OBJECTS_TREE(LEVEL_THIS);
CREATE INDEX OBJTREE_NUMPP ON OBJECTS_TREE(NUMPP);
Триггеры.
Перед вставкой новой строки :
Перед изменением строки :
Перед удалением строки :
После вставки новой строки :
После изменения строки :
После удаления строки :
______________________________________
(c) Sergey Popov, респ.Коми,
г.Усинск,(2009)
http://flexiobjdb.narod.ru
Используются технологии
uCoz