diff --git a/base_model/ddl.sql b/base_model/ddl.sql new file mode 100644 index 0000000..97b35e9 --- /dev/null +++ b/base_model/ddl.sql @@ -0,0 +1,67 @@ +CREATE SCHEMA IF NOT EXISTS BASIC; + +CREATE TABLE BASIC.ATTRIBUTE_GROUP ( + ID SERIAL PRIMARY KEY, + GROUP_TYPE VARCHAR(64) NOT NULL DEFAULT '', + GROUP_NAME VARCHAR(64) NOT NULL DEFAULT '', + IS_REQUIRED SMALLINT NOT NULL DEFAULT -1, + + UNIQUE(GROUP_TYPE) +); + +CREATE TABLE BASIC.DATA_TYPE ( + ID SERIAL PRIMARY KEY, + DATA_TYPE VARCHAR(64) NOT NULL DEFAULT '', + DATABASE_TYPE VARCHAR(32) NOT NULL DEFAULT '', + + UNIQUE(DATA_TYPE) +); + +CREATE TABLE BASIC.ATTRIBUTE ( + ID SERIAL PRIMARY KEY, + ATTRIBUTE VARCHAR(128) NOT NULL DEFAULT '', + DATA_TYPE_ID INTEGER NOT NULL DEFAULT -1, + LENGTH_PRECISION INTEGER NOT NULL DEFAULT -1, + SCALE INTEGER NOT NULL DEFAULT -1, + DEFAULT_VALUE VARCHAR(64) NOT NULL DEFAULT '', + VALUE_RANGE VARCHAR(128) NOT NULL DEFAULT '[,]', + ATTRIBUTE_GROUP_ID INTEGER NOT NULL DEFAULT -1, + IS_NOT_NULL INTEGER NOT NULL DEFAULT -1, + IS_INDEX INTEGER NOT NULL DEFAULT -1, + + UNIQUE(ATTRIBUTE), + + FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID), + FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID) +); + +CREATE TABLE BASIC.ATTRIBUTE_TEMPLATE ( + ID SERIAL PRIMARY KEY, + TEMPLATE_NAME VARCHAR(64) NOT NULL DEFAULT '', + DATA_TYPE_ID INTEGER NOT NULL DEFAULT -1, + LENGTH_PRECISION VARCHAR(16) NOT NULL DEFAULT '', + SCALE VARCHAR(16) NOT NULL DEFAULT '', + DEFAULT_VALUE VARCHAR(64) NOT NULL DEFAULT '', + VALUE_RANGE VARCHAR(128) NOT NULL DEFAULT '', + ATTRIBUTE_GROUP_ID INTEGER NOT NULL DEFAULT -1, + IS_NOT_NULL INTEGER NOT NULL DEFAULT -1, + IS_INDEX INTEGER NOT NULL DEFAULT -1, + + FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID), + FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID) +); + +CREATE TABLE BASIC.MODEL_ATTRIBUTE ( + ID SERIAL PRIMARY KEY, + MODEL_TYPE VARCHAR(64) NOT NULL DEFAULT '', + ATTRIBUTE_ID INTEGER NOT NULL DEFAULT -1, + + FOREIGN KEY (ATTRIBUTE_ID) REFERENCES BASIC.ATTRIBUTE (ID) +); + +CREATE TABLE BASIC.MODEL_CONNECTIVITY ( + ID SERIAL PRIMARY KEY, + FROM_MODEL VARCHAR (64) NOT NULL DEFAULT '', + TO_MODEL VARCHAR(64) NOT NULL DEFAULT '', + CONNECTIVITY INTEGER NOT NULL DEFAULT -1 +); diff --git a/base_model/dml.sql b/base_model/dml.sql new file mode 100644 index 0000000..546bb05 --- /dev/null +++ b/base_model/dml.sql @@ -0,0 +1,37 @@ +INSERT INTO + BASIC.ATTRIBUTE_GROUP (GROUP_TYPE, GROUP_NAME, IS_REQUIRED) +VALUES + ('base', '基础信息', 1), + ('base_extend', '基础信息扩展', 0), + ('rated', '额定参数', 0), + ('setup','设定参数',0), + ('model','模型参数',0), + ('stable','稳定参数',0), + ('bay','间隔信息',1), + ('craft','工艺与负荷',0), + ('integrity','设备完整性',0), + ('behavior','行为信息',0); + + +INSERT INTO + BASIC.DATA_TYPE (DATA_TYPE, DATABASE_TYPE) +VALUES + ('SMALLINT','postgres'), + ('INTEGER','postgres'), + ('BIGINT','postgres'), + ('REAL','postgres'), + ('DOUBLE PRECISION','postgres'), + ('NUMERIC','postgres'), + ('DECIMAL','postgres'), + ('SERIAL','postgres'), + ('BIGSERIAL','postgres'), + ('CHAR','postgres'), + ('VARCHAR','postgres'), + ('TEXT','postgres'), + ('BYTEA','postgres'), + ('DATE','postgres'), + ('TIME','postgres'), + ('TIMESTAMP','postgres'), + ('UUID','postgres'), + ('JSON','postrges'), + ('JSONB','postgres'); \ No newline at end of file