Скачиваний:
1
Добавлен:
31.05.2023
Размер:
2.29 Кб
Скачать
/****************Скрипты создания таблиц*********************/
/*********************Параметры-перечисления*************************/
CREATE TABLE ENUM(
ID_ENUM SERIAL PRIMARY KEY,
NAME VARCHAR(50) UNIQUE,
SHORT_NAME VARCHAR(10)
);

CREATE TABLE ENUM_VALUE(
ID_VALUE SERIAL PRIMARY KEY,
ID_ENUM INTEGER,
VALUE INTEGER NOT NULL,
NAME VARCHAR(50) NOT NULL,
SHORT_NAME VARCHAR(10),
FOREIGN KEY (ID_ENUM) REFERENCES ENUM(ID_ENUM) ON DELETE CASCADE
);


/*********************Изделия и классы*************************/
CREATE TABLE EI
(
SHORT_NAME varchar(10),
NAME varchar(50) NOT NULL,
CODE varchar(3) primary key
);

create table PRODUCT_CLASS
(
SHORT_NAME VARCHAR(10),
ID_CLASS SERIAL PRIMARY KEY,
NAME VARCHAR(50) unique,
MAIN_CLASS INTEGER,
BASE_EI VARCHAR(3),
FOREIGN KEY (BASE_EI) REFERENCES EI (CODE),
FOREIGN KEY (MAIN_CLASS) REFERENCES PRODUCT_CLASS (ID_CLASS)
);

CREATE TABLE PRODUCT
(
ID_PROD SERIAL PRIMARY KEY ,
SHORT_NAME VARCHAR(50),
NAME VARCHAR(250) NOT NULL ,
ID_CLASS INTEGER,
FOREIGN KEY (ID_CLASS) REFERENCES PRODUCT_CLASS (ID_CLASS)
);


/*********************Параметры******************************/
CREATE TABLE PARAMETER
(
ID_PAR SERIAL PRIMARY KEY ,
NAME VARCHAR(100) UNIQUE ,
SHORT_NAME VARCHAR(10),
ENUM_TYPE BOOL NOT NULL,
EI_CODE VARCHAR(3) NULL,
ENUM_ID INTEGER NULL,
FOREIGN KEY (EI_CODE) REFERENCES EI (CODE),
FOREIGN KEY (ENUM_ID) REFERENCES ENUM (ID_ENUM)
);

CREATE TABLE CLASS_PARAMETERS
(
ID_CLASS INTEGER,
ID_PARAMETER INTEGER,
MIN_VALUE REAL NULL,
MAX_VALUE REAL NULL,
PRIMARY KEY (ID_CLASS, ID_PARAMETER),
FOREIGN KEY (ID_CLASS) REFERENCES PRODUCT_CLASS (ID_CLASS),
FOREIGN KEY (ID_PARAMETER) REFERENCES PARAMETER (ID_PAR)
);

CREATE TABLE PRODUCT_PARAM
(
PRODUCT_ID INTEGER,
PARAM_ID INTEGER,
VALUE REAL,
ENUM_VALUE VARCHAR(30),
PRIMARY KEY (PRODUCT_ID, PARAM_ID),
FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCT (ID_PROD),
FOREIGN KEY (PARAM_ID) REFERENCES PARAMETER (ID_PAR)

);

Соседние файлы в папке ЗАДАНИЕ 1.3. Приемы моделирования Справочников