From df63c45a3ffd04de156bb38569187183b4ac9899 Mon Sep 17 00:00:00 2001 From: zhuxu Date: Wed, 28 May 2025 17:07:21 +0800 Subject: [PATCH] collect ddl to ddl.sql --- model/ddl.sql | 132 ++++++++++++++++++++++++++++++++++++ model/ddl_4_bay.sql | 4 +- model/ddl_5_measurement.sql | 4 +- model/dml.sql | 20 ++++++ 4 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 model/ddl.sql create mode 100644 model/dml.sql diff --git a/model/ddl.sql b/model/ddl.sql new file mode 100644 index 0000000..72fda10 --- /dev/null +++ b/model/ddl.sql @@ -0,0 +1,132 @@ +-- model in public schema + +CREATE SCHEMA IF NOT EXISTS PUBLIC; + +---- drop all, then create all +-- DROP TYPE IF EXISTS public.polar_coordinates; +-- DROP TABLE IF EXISTS PUBLIC.MEASUREMENT; +-- DROP TABLE IF EXISTS PUBLIC.BAY; +-- DROP TABLE IF EXISTS PUBLIC.TOPOLOGIC; +-- DROP TABLE IF EXISTS PUBLIC.COMPONENT; +-- DROP TABLE IF EXISTS PUBLIC.PAGE; +-- DROP TABLE IF EXISTS PUBLIC.STATION; +-- DROP TABLE IF EXISTS PUBLIC.ZONE; +-- DROP TABLE IF EXISTS PUBLIC.GRID; +-- DROP TABLE IF EXISTS PUBLIC.COMPONENT_TYPE; + + +CREATE TABLE PUBLIC.COMPONENT_TYPE ( + ID BIGSERIAL PRIMARY KEY, + TYPE VARCHAR(64) NOT NULL DEFAULT '', + NAME VARCHAR(64) NOT NULL DEFAULT '', + CONFIG JSONB NOT NULL DEFAULT '{}', + + UNIQUE (TYPE) +); + +CREATE TABLE PUBLIC.GRID ( + ID BIGSERIAL PRIMARY KEY, + NAME VARCHAR(64) NOT NULL DEFAULT '', + DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '', + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE PUBLIC.ZONE ( + ID BIGSERIAL PRIMARY KEY, + GRID_ID BIGINT NOT NULL, + NAME VARCHAR(64) NOT NULL DEFAULT '', + DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '', + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + + FOREIGN KEY (GRID_ID) REFERENCES PUBLIC.GRID (ID) +); + +CREATE TABLE PUBLIC.STATION ( + ID BIGSERIAL PRIMARY KEY, + ZONE_ID BIGINT NOT NULL, + NAME VARCHAR(64) NOT NULL DEFAULT '', + DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '', + IS_LOCAL BOOLEAN NOT NULL DEFAULT FALSE, + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + + FOREIGN KEY (ZONE_ID) REFERENCES PUBLIC.ZONE (ID) +); + +CREATE TABLE PUBLIC.PAGE ( + ID BIGSERIAL PRIMARY KEY, + TAG VARCHAR(32) NOT NULL DEFAULT '', + NAME VARCHAR(64) NOT NULL DEFAULT '', + LABEL JSONB NOT NULL DEFAULT '{}', + CONTEXT JSONB NOT NULL DEFAULT '{}', + DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '', + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE PUBLIC.COMPONENT ( + ID BIGSERIAL PRIMARY KEY, + GLOBAL_UUID UUID NOT NULL DEFAULT GEN_RANDOM_UUID(), + NSPATH VARCHAR(32) NOT NULL DEFAULT '', + TAG VARCHAR(32) NOT NULL DEFAULT '', + NAME VARCHAR(64) NOT NULL DEFAULT '', + MODEL_NAME VARCHAR(64) NOT NULL DEFAULT '', + DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '', + GRID VARCHAR(64) NOT NULL DEFAULT '', + ZONE VARCHAR(64) NOT NULL DEFAULT '', + STATION VARCHAR(64) NOT NULL DEFAULT '', + TYPE INTEGER NOT NULL DEFAULT -1, + IN_SERVICE BOOLEAN NOT NULL DEFAULT FALSE, + STATE INTEGER NOT NULL DEFAULT -1, + STATUS INTEGER NOT NULL DEFAULT -1, + CONNECTION JSONB NOT NULL DEFAULT '{}', + LABEL JSONB NOT NULL DEFAULT '{}', + CONTEXT JSONB NOT NULL DEFAULT '{}', + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE PUBLIC.TOPOLOGIC ( + ID BIGSERIAL PRIMARY KEY, + UUID_FROM UUID NOT NULL, + UUID_TO UUID NOT NULL, + FROM_PIN UUID NOT NULL, + TO_PIN UUID NOT NULL, + FLAG INTEGER NOT NULL DEFAULT 0, + DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '', + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE PUBLIC.BAY ( + ID BIGSERIAL PRIMARY KEY, + NAME VARCHAR(64) NOT NULL DEFAULT '', + TYPE VARCHAR(64) NOT NULL DEFAULT '', + FROM_NODE JSONB NOT NULL DEFAULT '[]', -- uuids + TO_NODE JSONB NOT NULL DEFAULT '[]', -- uuids + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE PUBLIC.MEASUREMENT ( + ID BIGSERIAL PRIMARY KEY, + TAG VARCHAR(64) NOT NULL DEFAULT '', + NAME VARCHAR(64) NOT NULL DEFAULT '', + TYPE SMALLINT NOT NULL DEFAULT -1, + DATA_SOURCE JSONB NOT NULL DEFAULT '{}', -- {'type':,'main_pos':'','sub_pos':''} + SIZE INTEGER NOT NULL DEFAULT -1, + BAY_ID BIGINT NOT NULL, + COMPONENT_ID BIGINT NOT NULL, + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + + FOREIGN KEY (BAY_ID) REFERENCES PUBLIC.BAY (ID), + FOREIGN KEY (COMPONENT_ID) REFERENCES PUBLIC.COMPONENT (ID) +); + +CREATE TYPE PUBLIC.POLAR_COORDINATES AS ( + MAGNITUDE DOUBLE PRECISION, + PHASE DOUBLE PRECISION +); \ No newline at end of file diff --git a/model/ddl_4_bay.sql b/model/ddl_4_bay.sql index 465e2fc..2426a62 100644 --- a/model/ddl_4_bay.sql +++ b/model/ddl_4_bay.sql @@ -7,5 +7,7 @@ CREATE TABLE PUBLIC.BAY ( NAME VARCHAR(64) NOT NULL DEFAULT '', TYPE VARCHAR(64) NOT NULL DEFAULT '', FROM_NODE JSONB NOT NULL DEFAULT '[]', -- uuids - TO_NODE JSONB NOT NULL DEFAULT '[]' -- uuids + TO_NODE JSONB NOT NULL DEFAULT '[]', -- uuids + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP ); \ No newline at end of file diff --git a/model/ddl_5_measurement.sql b/model/ddl_5_measurement.sql index 9bdca3a..f96d804 100644 --- a/model/ddl_5_measurement.sql +++ b/model/ddl_5_measurement.sql @@ -10,5 +10,7 @@ CREATE TABLE PUBLIC.MEASUREMENT ( DATA_SOURCE JSONB NOT NULL DEFAULT '{}', -- {'type':,'main_pos':'','sub_pos':''} SIZE INTEGER NOT NULL DEFAULT -1, BAY_ID INTEGER NOT NULL DEFAULT -1, - COMPONENT_ID INTEGER NOT NULL DEFAULT -1 + COMPONENT_ID INTEGER NOT NULL DEFAULT -1, + OP INTEGER NOT NULL DEFAULT -1, + TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP ); \ No newline at end of file diff --git a/model/dml.sql b/model/dml.sql new file mode 100644 index 0000000..eebfd94 --- /dev/null +++ b/model/dml.sql @@ -0,0 +1,20 @@ + + +-- supported standard component type +INSERT INTO + PUBLIC.COMPONENT_TYPE (TYPE, NAME, CONFIG) +VALUES + ('bus','母线段','{}'), + ('asyncmotor','异步电动机','{}'), + ('cb','断路器','{}'), + ('ct','电流互感器','{}'), + ('pt','电压互感器','{}'), + ('es','接地开关','{}'), + ('fes','快速接地开关','{}'), + ('cable','电缆','{}'), + ('ds','隔离开关','{}'), + ('dteds','双掷接地隔离开关','{}'), + ('potential_indicator','带电指示器','{}'), + ('lightning_arrester','避雷器','{}'), + ('cable_termination','电缆出线套筒','{}'), + ('cable_end','电缆端','{}'); \ No newline at end of file