diff --git a/db/UDO_T_EQUIPDS.sql b/db/UDO_T_EQUIPDS.sql new file mode 100644 index 0000000..3d41a34 --- /dev/null +++ b/db/UDO_T_EQUIPDS.sql @@ -0,0 +1,19 @@ +/* Выборки данных оборудования */ +create table UDO_T_EQUIPDS +( + /* Регистрационный номер */ + RN number(17) not null, + /* Организация */ + COMPANY number(17) not null, + /* Мнемокод */ + CODE varchar2(40) not null, + /* Наименование */ + NAME varchar2(200) not null, + /* Ключи */ + constraint UDO_C_EQUIPDS_RN_PK primary key (RN), + constraint UDO_C_EQUIPDS_COMPANY_FK foreign key (COMPANY) references COMPANIES(RN), + constraint UDO_C_EQUIPDS_CODE_NB check (rtrim(CODE) is not null), + constraint UDO_C_EQUIPDS_NAME_NB check (rtrim(NAME) is not null), + constraint UDO_C_EQUIPDS_CODE_UN unique (COMPANY, CODE), + constraint UDO_C_EQUIPDS_NAME_UN unique (COMPANY, NAME) +); diff --git a/db/UDO_T_EQUIPDSCM.sql b/db/UDO_T_EQUIPDSCM.sql new file mode 100644 index 0000000..403279a --- /dev/null +++ b/db/UDO_T_EQUIPDSCM.sql @@ -0,0 +1,28 @@ +/* Выборки данных оборудования (классы оборудования) */ +create table UDO_T_EQUIPDSCM +( + /* Регистрационный номер */ + RN number(17) not null, + /* Родитель */ + PRN number(17) not null, + /* Класс оборудования */ + EQOBJKIND number(17) not null, + /* Описание структуры выборки */ + DATA_CONFIG clob, + /* Процедура формирования */ + USERPROCS_DATA number(17) not null, + /* Функция обмена для выгрузки на FTP */ + EXSSERVICEFN_UPLOAD number(17) not null, + /* Функция обмена для передачи внешней системе */ + EXSSERVICEFN_SEND_MD number(17) not null, + /* Функция обмена для обработки внешней системой */ + EXSSERVICEFN_SEND_RQ number(17) not null, + /* Ключи */ + constraint UDO_C_EQUIPDSCM_RN_PK primary key (RN), + constraint UDO_C_EQUIPDSCM_PRN_FK foreign key (PRN) references UDO_T_EQUIPDS(RN), + constraint UDO_C_EQUIPDSCM_USRPD_FK foreign key (USERPROCS_DATA) references USERPROCS(RN), + constraint UDO_C_EQUIPDSCM_EXSFNUPLD_FK foreign key (EXSSERVICEFN_UPLOAD) references EXSSERVICEFN(RN), + constraint UDO_C_EQUIPDSCM_EXSFNSDMD_FK foreign key (EXSSERVICEFN_SEND_MD) references EXSSERVICEFN(RN), + constraint UDO_C_EQUIPDSCM_EXSFNSDRQ_FK foreign key (EXSSERVICEFN_SEND_RQ) references EXSSERVICEFN(RN), + constraint UDO_C_EQUIPDSCM_UN unique (PRN, EQOBJKIND) +); diff --git a/db/UDO_T_EQUIPDSCMFL.sql b/db/UDO_T_EQUIPDSCMFL.sql new file mode 100644 index 0000000..34cb9b5 --- /dev/null +++ b/db/UDO_T_EQUIPDSCMFL.sql @@ -0,0 +1,30 @@ +/* Выборки данных оборудования (классы оборудования, файлы данных) */ +create table UDO_T_EQUIPDSCMFL +( + /* Регистрационный номер */ + RN number(17) not null, + /* Родитель */ + PRN number(17) not null, + /* Имя файла */ + FILE_NAME varchar2(2000) not null, + /* Описание */ + DESCR varchar2(4000) default null, + /* Идентификатор очереди обработки */ + QUEUE_ID varchar2(200) default null, + /* Состояние */ + STATUS number(1) default 0 not null, + /* Сообщение об ошибке */ + ERR varchar2(4000) default null, + /* Ключи */ + constraint UDO_C_EQUIPDSCMFL_RN_PK primary key (RN), + constraint UDO_C_EQUIPDSCMFL_PRN_FK foreign key (PRN) references UDO_T_EQUIPDSCM(RN), + constraint UDO_C_EQUIPDSCMFL_FLNM_NB check (rtrim(FILE_NAME) is not null), + constraint UDO_C_EQUIPDSCMFL_DESCR_NB check ((DESCR is null) or (rtrim(DESCR) is not null)), + constraint UDO_C_EQUIPDSCMFL_QID_NB check ((QUEUE_ID is null) or (rtrim(QUEUE_ID) is not null)), + constraint UDO_C_EQUIPDSCMFL_QID_CH check (((STATUS in (4, 5, 6)) and (QUEUE_ID is not null)) or (STATUS not in (4, 5, 6))), + constraint UDO_C_EQUIPDSCMFL_STATUS_CH check (STATUS in (0, 1, 2, 3, 4, 5, 6)), + constraint UDO_C_EQUIPDSCMFL_ERR_NB check ((ERR is null) or (rtrim(ERR) is not null)), + constraint UDO_C_EQUIPDSCMFL_ERR_CH check (((STATUS in (3, 6)) and (ERR is not null)) or (STATUS not in (3, 6))), + constraint UDO_C_EQUIPDSCMFL_FLNM_UN unique (PRN, FILE_NAME), + constraint UDO_C_EQUIPDSCMFL_QID_UN unique (FILE_NAME, QUEUE_ID) +); diff --git a/db/UDO_T_EQUIPDSCMML.sql b/db/UDO_T_EQUIPDSCMML.sql new file mode 100644 index 0000000..9c81d95 --- /dev/null +++ b/db/UDO_T_EQUIPDSCMML.sql @@ -0,0 +1,34 @@ +/* Выборки данных оборудования (классы оборудования, модели) */ +create table UDO_T_EQUIPDSCMML +( + /* Регистрационный номер */ + RN number(17) not null, + /* Родитель */ + PRN number(17) not null, + /* Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */ + TASK varchar2(3) default 'RUL' not null, + /* Точность (план) */ + PRECISION_P number(3) not null, + /* Точность (факт) */ + PRECISION_F number(3) default null, + /* Идентификатор очереди обработки */ + QUEUE_ID varchar2(200) default null, + /* Состояние */ + STATUS number(1) default 0 not null, + /* Сообщение об ошибке */ + ERR varchar2(4000) default null, + /* Ключи */ + constraint UDO_C_EQUIPDSCMML_RN_PK primary key (RN), + constraint UDO_C_EQUIPDSCMML_PRN_FK foreign key (PRN) references UDO_T_EQUIPDSCM(RN), + constraint UDO_C_EQUIPDSCMML_TASK_NB check (rtrim(TASK) is not null), + constraint UDO_C_EQUIPDSCMML_TASK_CH check (TASK in ('TCF', 'RUL', 'FP')), + constraint UDO_C_EQUIPDSCMML_PRECP_CH check ((PRECISION_P > 0) and (PRECISION_P <= 100)), + constraint UDO_C_EQUIPDSCMML_PRECF_CH check ((PRECISION_F is null) or ((PRECISION_F is not null) and (PRECISION_F > 0) and (PRECISION_F <= 100))), + constraint UDO_C_EQUIPDSCMML_QID_NB check ((QUEUE_ID is null) or (rtrim(QUEUE_ID) is not null)), + constraint UDO_C_EQUIPDSCMML_QID_CH check (((STATUS in (1, 2, 3)) and (QUEUE_ID is not null)) or (STATUS not in (1, 2, 3))), + constraint UDO_C_EQUIPDSCMML_STATUS_CH check (STATUS in (0, 1, 2, 3)), + constraint UDO_C_EQUIPDSCMML_ERR_NB check ((ERR is null) or (rtrim(ERR) is not null)), + constraint UDO_C_EQUIPDSCMML_ERR_CH check (((STATUS in (3)) and (ERR is not null)) or (STATUS not in (3))), + constraint UDO_C_EQUIPDSCMML_UN unique (PRN, TASK, PRECISION_P, QUEUE_ID), + constraint UDO_C_EQUIPDSCMML_QID_UN unique (QUEUE_ID) +);