Дата актуальности: 12.06.2009
FlexiObjDB
Объектно-ориентированное на
предметную область
долговременное хранилище информации.
Таблица базы данных: L_TYPEOBJ_LIST
Назначение:
Справочник. Список типов из множества
типов объектов/процессов
Системный (внутренний) ID-таблицы
= 4
Список и назначение полей таблицы.
Имя поля | Назначение | Индекс | Ссылка на таблицу |
Формат | Примечание |
ID_THIS | Уникальный ID строки | primary | VARCHAR(40) NOT NULL | вычисляется автоматически, генератор: GEN_L_TYPEOBJ_LIST |
|
ID_GRP | ID группы в контексте текущей группировки | + | L_TYPEOBJ_GRP | VARCHAR(40) NOT NULL | группировка в контексте группы |
ITS_GLOBAL | Признак "глобальности" | + | INTEGER | вычисляется автоматически | |
ID_SYSTEM | Признак "системности" | + | INTEGER | ||
ID_KIND | ID вида (1-объект, 2-процесс) | + | INTEGER | ||
ITS_ABSTRACT | Признак абстрактности объекта/процесса | + | INTEGER | если >0, то абстрактный | |
ID_IMAGE | ID bmp-файла для визуализации объектов/процессов данного типа в дереве | + | INTEGER | Актуально только в контексте исполняемого модуля | |
YESEDIT_THIS | Для принудительного срабатывания триггера "before update" | INTEGER | Для того, чтобы триггер сработал, приложение должно установить значение >0 | ||
NUMPP | Порядковый номер строки в
контексте текущей группировки (сортировка) |
+ | INTEGER | ||
NAME_MAX | Полное наименование | VARCHAR(200) | |||
NAME_MIN | Сокращенное наименование | VARCHAR(84) | |||
MNEMO_CODE | Мнемо-имя (не обязательно) | + | VARCHAR(32) | Уникальность на уровне таблицы (если задано) | |
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 | вычисляется автоматически |
CREATE TABLE L_TYPEOBJ_LIST (ID_THIS VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
ID_GRP VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE PXW_CYRL,
ITS_GLOBAL INTEGER,
ID_SYSTEM INTEGER,
ID_KIND INTEGER,
ITS_ABSTRACT INTEGER,
ID_IMAGE INTEGER,
NUMPP INTEGER,
NAME_MAX VARCHAR(200) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
NAME_MIN VARCHAR(84) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
MNEMO_CODE VARCHAR(32) CHARACTER SET WIN1251 COLLATE PXW_CYRL,
NOTE VARCHAR(200) CHARACTER SET WIN1251 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,
PRIMARY KEY (ID_THIS));
Поддержка ссылочной целостности.
Поле | Master-table | Detail-table | Примечание |
ID_GRP |
L_TYPEOBJ_GRP.ID_THIS |
в триггере BD_LTYPEOBJGRP | |
ID_THIS |
Индексы.
CREATE INDEX LTYPEOBJLIST_IDGRP ON
L_TYPEOBJ_LIST(ID_GRP);
CREATE INDEX LTYPEOBJLIST_IDIMG ON L_TYPEOBJ_LIST(ID_IMAGE);
CREATE INDEX LTYPEOBJLIST_IDKIND ON L_TYPEOBJ_LIST(ID_KIND);
CREATE INDEX LTYPEOBJLIST_ITSGLOB ON L_TYPEOBJ_LIST(ITS_GLOBAL);
CREATE INDEX LTYPEOBJLIST_IDSYS ON L_TYPEOBJ_LIST(ID_SYSTEM);
CREATE INDEX LTYPEOBJLIST_IDUSR_CR ON L_TYPEOBJ_LIST(IDUSER_CREATE);
CREATE INDEX LTYPEOBJLIST_IDUSR_UPD ON L_TYPEOBJ_LIST(IDUSER_UPDATE);
CREATE INDEX LTYPEOBJLIST_ITSABSTR ON L_TYPEOBJ_LIST(ITS_ABSTRACT);
CREATE INDEX LTYPEOBJLIST_MNEMO ON L_TYPEOBJ_LIST(MNEMO_CODE);
CREATE INDEX LTYPEOBJLIST_NUMPP ON L_TYPEOBJ_LIST(NUMPP);
Триггеры.
Перед вставкой новой строки :
Перед изменением строки :
Перед удалением строки :
После вставки новой строки :
После изменения строки :
После удаления строки :
______________________________________
(c) Sergey Popov, респ.Коми,
г.Усинск,(2009)