dbSchema/base_model/ddl.sql

115 lines
3.4 KiB
MySQL
Raw Normal View History

2025-05-23 10:34:45 +08:00
-- base model in basic schema
2025-03-05 11:15:30 +08:00
CREATE SCHEMA IF NOT EXISTS BASIC;
2025-05-23 10:34:45 +08:00
---- drop all, then create all
-- DROP TABLE IF EXISTS BASIC.MODEL_CONNECTIVITY;
-- DROP TABLE IF EXISTS BASIC.ATTRIBUTE_TEMPLATE;
-- DROP TABLE IF EXISTS BASIC.MODEL_ATTRIBUTE_PUBLIC;
-- DROP TABLE IF EXISTS BASIC.MODEL_ATTRIBUTE;
-- DROP TABLE IF EXISTS BASIC.ATTRIBUTE;
-- DROP TABLE IF EXISTS BASIC.MODEL_GROUP;
-- DROP TABLE IF EXISTS BASIC.MODEL_TYPE;
-- DROP TABLE IF EXISTS BASIC.ATTRIBUTE_GROUP;
-- DROP TABLE IF EXISTS BASIC.DATA_TYPE;
CREATE TABLE BASIC.DATA_TYPE (
ID BIGSERIAL PRIMARY KEY,
DATA_TYPE VARCHAR(64) NOT NULL DEFAULT '',
DATABASE_TYPE VARCHAR(32) NOT NULL DEFAULT '',
UNIQUE (DATA_TYPE)
);
2025-03-05 11:15:30 +08:00
CREATE TABLE BASIC.ATTRIBUTE_GROUP (
2025-05-22 16:09:24 +08:00
ID BIGSERIAL PRIMARY KEY,
2025-03-05 11:15:30 +08:00
GROUP_TYPE VARCHAR(64) NOT NULL DEFAULT '',
GROUP_NAME VARCHAR(64) NOT NULL DEFAULT '',
2025-05-22 16:09:24 +08:00
IS_PUBLIC SMALLINT NOT NULL DEFAULT -1,
REMARK VARCHAR(128) NOT NULL DEFAULT '',
UNIQUE (GROUP_TYPE)
2025-03-05 11:15:30 +08:00
);
2025-05-22 16:09:24 +08:00
CREATE TABLE BASIC.MODEL_TYPE (
ID BIGSERIAL PRIMARY KEY,
MODEL_TYPE VARCHAR(64) NOT NULL DEFAULT '',
MODEL_NAME VARCHAR(64) NOT NULL DEFAULT '',
2025-05-27 16:27:59 +08:00
GRAPHIC_ELEMENT BIGINT NOT NULL, -- 图元类型
2025-05-23 10:34:45 +08:00
ICON BYTEA NOT NULL, -- 默认图标
2025-05-22 16:09:24 +08:00
REMARK VARCHAR(128) NOT NULL DEFAULT '',
2025-05-27 16:27:59 +08:00
UNIQUE (MODEL_TYPE),
2025-05-28 10:56:24 +08:00
FOREIGN KEY (GRAPHIC_ELEMENT) REFERENCES PUBLIC.COMPONENT_TYPE (ID)
2025-05-22 16:09:24 +08:00
);
CREATE TABLE BASIC.MODEL_GROUP (
ID BIGSERIAL PRIMARY KEY,
MODEL_TYPE_ID BIGINT NOT NULL,
ATTRIBUTE_GROUP_ID BIGINT NOT NULL,
UNIQUE (MODEL_TYPE_ID, ATTRIBUTE_GROUP_ID),
FOREIGN KEY (MODEL_TYPE_ID) REFERENCES BASIC.MODEL_TYPE (ID) ON DELETE CASCADE,
FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID)
2025-03-05 11:15:30 +08:00
);
CREATE TABLE BASIC.ATTRIBUTE (
2025-05-22 16:09:24 +08:00
ID BIGSERIAL PRIMARY KEY,
2025-03-05 11:15:30 +08:00
ATTRIBUTE VARCHAR(128) NOT NULL DEFAULT '',
2025-05-22 16:09:24 +08:00
ATTRIBUTE_NAME VARCHAR(64) NOT NULL DEFAULT '',
DATA_TYPE_ID BIGINT NOT NULL,
2025-03-05 11:15:30 +08:00
LENGTH_PRECISION INTEGER NOT NULL DEFAULT -1,
SCALE INTEGER NOT NULL DEFAULT -1,
2025-03-06 20:10:53 +08:00
IS_NOT_NULL SMALLINT NOT NULL DEFAULT -1,
2025-03-05 11:15:30 +08:00
DEFAULT_VALUE VARCHAR(64) NOT NULL DEFAULT '',
2025-03-06 20:10:53 +08:00
VALUE_RANGE VARCHAR(128) NOT NULL DEFAULT ',',
2025-05-22 16:09:24 +08:00
IS_VISIBLE SMALLINT NOT NULL DEFAULT -1,
FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID)
);
2025-03-05 11:15:30 +08:00
2025-05-22 16:09:24 +08:00
CREATE TABLE BASIC.MODEL_ATTRIBUTE_PUBLIC (
ID BIGSERIAL PRIMARY KEY,
ATTRIBUTE_GROUP_ID BIGINT NOT NULL,
ATTRIBUTE_ID BIGINT NOT NULL,
2025-03-05 11:15:30 +08:00
2025-05-22 16:09:24 +08:00
UNIQUE (ATTRIBUTE_GROUP_ID, ATTRIBUTE_ID),
FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID),
FOREIGN KEY (ATTRIBUTE_ID) REFERENCES BASIC.ATTRIBUTE (ID) ON DELETE CASCADE
);
CREATE TABLE BASIC.MODEL_ATTRIBUTE (
ID BIGSERIAL PRIMARY KEY,
MODEL_TYPE_ID BIGINT NOT NULL,
ATTRIBUTE_GROUP_ID BIGINT NOT NULL,
ATTRIBUTE_ID BIGINT NOT NULL,
UNIQUE (MODEL_TYPE_ID, ATTRIBUTE_GROUP_ID, ATTRIBUTE_ID),
FOREIGN KEY (MODEL_TYPE_ID) REFERENCES BASIC.MODEL_TYPE (ID) ON DELETE CASCADE,
FOREIGN KEY (ATTRIBUTE_GROUP_ID) REFERENCES BASIC.ATTRIBUTE_GROUP (ID),
FOREIGN KEY (ATTRIBUTE_ID) REFERENCES BASIC.ATTRIBUTE (ID) ON DELETE CASCADE
2025-03-05 11:15:30 +08:00
);
CREATE TABLE BASIC.ATTRIBUTE_TEMPLATE (
2025-05-22 16:09:24 +08:00
ID BIGSERIAL PRIMARY KEY,
2025-03-05 11:15:30 +08:00
TEMPLATE_NAME VARCHAR(64) NOT NULL DEFAULT '',
2025-05-22 16:09:24 +08:00
DATA_TYPE_ID BIGINT NOT NULL,
2025-03-06 20:10:53 +08:00
LENGTH_PRECISION INTEGER NOT NULL DEFAULT -1,
SCALE INTEGER NOT NULL DEFAULT -1,
IS_NOT_NULL SMALLINT NOT NULL DEFAULT -1,
2025-05-22 16:09:24 +08:00
FOREIGN KEY (DATA_TYPE_ID) REFERENCES BASIC.DATA_TYPE (ID)
2025-03-05 11:15:30 +08:00
);
CREATE TABLE BASIC.MODEL_CONNECTIVITY (
2025-05-22 16:09:24 +08:00
ID BIGSERIAL PRIMARY KEY,
FROM_MODEL VARCHAR(64) NOT NULL DEFAULT '',
2025-03-05 11:15:30 +08:00
TO_MODEL VARCHAR(64) NOT NULL DEFAULT '',
2025-03-06 20:10:53 +08:00
CONNECTIVITY SMALLINT NOT NULL DEFAULT -1
2025-05-27 16:27:59 +08:00
);