diff --git a/base_model/ddl.sql b/base_model/ddl.sql index 97b35e9..50a191d 100644 --- a/base_model/ddl.sql +++ b/base_model/ddl.sql @@ -19,42 +19,42 @@ CREATE TABLE BASIC.DATA_TYPE ( CREATE TABLE BASIC.ATTRIBUTE ( ID SERIAL PRIMARY KEY, + ATTRIBUTE_GROUP VARCHAR(64) NOT NULL DEFAULT '', ATTRIBUTE VARCHAR(128) NOT NULL DEFAULT '', - DATA_TYPE_ID INTEGER NOT NULL DEFAULT -1, + DATA_TYPE VARCHAR(64) NOT NULL DEFAULT '', LENGTH_PRECISION INTEGER NOT NULL DEFAULT -1, SCALE INTEGER NOT NULL DEFAULT -1, + IS_NOT_NULL SMALLINT 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, + VALUE_RANGE VARCHAR(128) NOT NULL DEFAULT ',', UNIQUE(ATTRIBUTE), - FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID), - FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID) + FOREIGN KEY (DATA_TYPE) REFERENCES BASIC.DATA_TYPE (DATA_TYPE), + FOREIGN KEY (ATTRIBUTE_GROUP) REFERENCES BASIC.ATTRIBUTE_GROUP (GROUP_TYPE) ); 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 '', + ATTRIBUTE_GROUP VARCHAR(64) NOT NULL DEFAULT '', + DATA_TYPE VARCHAR(64) NOT NULL DEFAULT '', + LENGTH_PRECISION INTEGER NOT NULL DEFAULT -1, + SCALE INTEGER NOT NULL DEFAULT -1, + IS_NOT_NULL SMALLINT 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, - FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID), - FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID) + FOREIGN KEY (DATA_TYPE) REFERENCES BASIC.DATA_TYPE (DATA_TYPE), + FOREIGN KEY (ATTRIBUTE_GROUP) REFERENCES BASIC.ATTRIBUTE_GROUP (GROUP_TYPE) ); CREATE TABLE BASIC.MODEL_ATTRIBUTE ( ID SERIAL PRIMARY KEY, MODEL_TYPE VARCHAR(64) NOT NULL DEFAULT '', + MODEL_NAME VARCHAR(64) NOT NULL DEFAULT '', ATTRIBUTE_ID INTEGER NOT NULL DEFAULT -1, + REMARK VARCHAR(128) NOT NULL DEFAULT '', FOREIGN KEY (ATTRIBUTE_ID) REFERENCES BASIC.ATTRIBUTE (ID) ); @@ -63,5 +63,5 @@ 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 + CONNECTIVITY SMALLINT NOT NULL DEFAULT -1 ); diff --git a/base_model/ddl_v2.sql b/base_model/ddl_v2.sql new file mode 100644 index 0000000..5cc3e22 --- /dev/null +++ b/base_model/ddl_v2.sql @@ -0,0 +1,80 @@ +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_PUBLIC SMALLINT NOT NULL DEFAULT -1, + REMARK VARCHAR(128) NOT NULL DEFAULT '', + + 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.MODEL_TYPE ( + ID SERIAL PRIMARY KEY, + MODEL_TYPE VARCHAR(64) NOT NULL DEFAULT '', + MODEL_NAME VARCHAR(64) NOT NULL DEFAULT '', + REMARK VARCHAR(128) NOT NULL DEFAULT '', + + UNIQUE (MODEL_TYPE) +); + +CREATE TABLE BASIC.MAPPING_MODEL_GROUP ( + ID SERIAL PRIMARY KEY, + MODEL_TYPE_ID INTEGER NOT NULL DEFAULT -1, + ATTRIBUTE_GROUP_ID INTEGER NOT NULL DEFAULT -1, + + UNIQUE (MODEL_TYPE_ID, ATTRIBUTE_GROUP_ID), + + FOREIGN KEY (MODEL_TYPE_ID) REFERENCES BASIC.MODEL_TYPE (ID), + FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID) +); + +CREATE TABLE BASIC.ATTRIBUTE ( + ID SERIAL PRIMARY KEY, + ATTRIBUTE_GROUP_ID INTEGER NOT NULL DEFAULT -1, + ATTRIBUTE VARCHAR(128) NOT NULL DEFAULT '', + ATTRIBUTE_NAME VARCHAR(64) NOT NULL DEFAULT '', + DATA_TYPE_ID INTEGER NOT NULL DEFAULT -1, + LENGTH_PRECISION INTEGER NOT NULL DEFAULT 0, + SCALE INTEGER NOT NULL DEFAULT 0, + IS_NOT_NULL SMALLINT NOT NULL DEFAULT -1, + DEFAULT_VALUE VARCHAR(64) NOT NULL DEFAULT '', + VALUE_RANGE VARCHAR(128) NOT NULL DEFAULT ',', + + UNIQUE (ATTRIBUTE_GROUP_ID, ATTRIBUTE), + UNIQUE (ATTRIBUTE, ATTRIBUTE_NAME), + + FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID), + FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID) +); + +CREATE TABLE BASIC.ATTRIBUTE_TEMPLATE ( + ID SERIAL PRIMARY KEY, + TEMPLATE_NAME VARCHAR(64) NOT NULL DEFAULT '', + ATTRIBUTE_GROUP_ID INTEGER NOT NULL DEFAULT -1, + DATA_TYPE_ID INTEGER NOT NULL DEFAULT -1, + LENGTH_PRECISION INTEGER NOT NULL DEFAULT 0, + SCALE INTEGER NOT NULL DEFAULT 0, + IS_NOT_NULL SMALLINT NOT NULL DEFAULT -1, + DEFAULT_VALUE VARCHAR(64) NOT NULL DEFAULT '', + VALUE_RANGE VARCHAR(128) NOT NULL DEFAULT '', + + FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID), + FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (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 SMALLINT NOT NULL DEFAULT -1 +); \ No newline at end of file diff --git a/base_model/dml.sql b/base_model/dml.sql index 546bb05..00dce26 100644 --- a/base_model/dml.sql +++ b/base_model/dml.sql @@ -1,16 +1,16 @@ INSERT INTO - BASIC.ATTRIBUTE_GROUP (GROUP_TYPE, GROUP_NAME, IS_REQUIRED) + BASIC.ATTRIBUTE_GROUP (GROUP_TYPE, GROUP_NAME, IS_PUBLIC, REMARK) VALUES - ('base', '基础信息', 1), - ('base_extend', '基础信息扩展', 0), - ('rated', '额定参数', 0), - ('setup','设定参数',0), - ('model','模型参数',0), - ('stable','稳定参数',0), - ('bay','间隔信息',1), - ('craft','工艺与负荷',0), - ('integrity','设备完整性',0), - ('behavior','行为信息',0); + ('base', '基础信息', 1,''), + ('base_extend', '基础信息扩展', 0,''), + ('rated', '额定参数', 0,''), + ('setup','设定参数',0,''), + ('model','模型参数',0,''), + ('stable','稳定参数',0,''), + ('bay','间隔信息',1,''), + ('craft','工艺与负荷',0,''), + ('integrity','设备完整性',0,''), + ('behavior','行为信息',0,''); INSERT INTO