172 lines
6.1 KiB
SQL
172 lines
6.1 KiB
SQL
-- model in public schema
|
||
|
||
CREATE SCHEMA IF NOT EXISTS PUBLIC;
|
||
|
||
---- drop all, then create all
|
||
-- 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;
|
||
-- DROP TYPE IF EXISTS public.polar_coordinates;
|
||
|
||
|
||
CREATE TYPE PUBLIC.POLAR_COORDINATES AS (
|
||
MAGNITUDE DOUBLE PRECISION,
|
||
PHASE DOUBLE PRECISION
|
||
);
|
||
|
||
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,
|
||
TAGNAME VARCHAR(32) NOT NULL DEFAULT '',
|
||
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,
|
||
|
||
UNIQUE (TAGNAME)
|
||
);
|
||
|
||
CREATE TABLE PUBLIC.ZONE (
|
||
ID BIGSERIAL PRIMARY KEY,
|
||
GRID_ID BIGINT NOT NULL,
|
||
TAGNAME VARCHAR(32) NOT NULL DEFAULT '',
|
||
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,
|
||
|
||
UNIQUE (TAGNAME),
|
||
|
||
FOREIGN KEY (GRID_ID) REFERENCES PUBLIC.GRID (ID)
|
||
);
|
||
|
||
CREATE TABLE PUBLIC.STATION (
|
||
ID BIGSERIAL PRIMARY KEY,
|
||
ZONE_ID BIGINT NOT NULL,
|
||
TAGNAME VARCHAR(32) NOT NULL DEFAULT '',
|
||
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,
|
||
|
||
UNIQUE (TAGNAME),
|
||
|
||
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 (
|
||
GLOBAL_UUID UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
||
NSPATH VARCHAR(64) NOT NULL DEFAULT '',
|
||
TAG VARCHAR(64) 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 '',
|
||
STATION_ID BIGINT NOT NULL,
|
||
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 '{}', -- http://server.baseware.net:6875/books/product-design-docs/page/editor
|
||
LABEL JSONB NOT NULL DEFAULT '{}',
|
||
CONTEXT JSONB NOT NULL DEFAULT '{}',
|
||
OP INTEGER NOT NULL DEFAULT -1,
|
||
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
||
UNIQUE (TAG),
|
||
|
||
FOREIGN KEY (STATION_ID) REFERENCES PUBLIC.STATION (ID)
|
||
);
|
||
|
||
CREATE TABLE PUBLIC.TOPOLOGIC (
|
||
ID BIGSERIAL PRIMARY KEY,
|
||
UUID_FROM UUID NOT NULL,
|
||
UUID_TO UUID NOT NULL,
|
||
CONTEXT JSONB NOT NULL DEFAULT '{}',
|
||
FLAG INTEGER NOT NULL DEFAULT 1,
|
||
DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '',
|
||
OP INTEGER NOT NULL DEFAULT -1,
|
||
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
CREATE TABLE PUBLIC.BAY (
|
||
BAY_UUID UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
||
NAME VARCHAR(64) NOT NULL DEFAULT '',
|
||
TAG VARCHAR(32) NOT NULL DEFAULT '',
|
||
TYPE VARCHAR(64) NOT NULL DEFAULT '',
|
||
UNOM DOUBLE PRECISION NOT NULL DEFAULT -1,
|
||
FLA DOUBLE PRECISION NOT NULL DEFAULT -1,
|
||
CAPACITY DOUBLE PRECISION NOT NULL DEFAULT -1,
|
||
DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '',
|
||
IN_SERVICE BOOLEAN NOT NULL DEFAULT FALSE,
|
||
STATE INTEGER NOT NULL DEFAULT -1,
|
||
GRID VARCHAR(64) NOT NULL DEFAULT '',
|
||
ZONE VARCHAR(64) NOT NULL DEFAULT '',
|
||
STATION VARCHAR(64) NOT NULL DEFAULT '',
|
||
BUSINESS JSONB NOT NULL DEFAULT '{}', -- for Server
|
||
CONTEXT JSONB NOT NULL DEFAULT '{}', -- for UI
|
||
FROM_UUIDS JSONB NOT NULL DEFAULT '[]', -- uuids
|
||
TO_UUIDS JSONB NOT NULL DEFAULT '[]', -- uuids
|
||
DEV_PROTECT JSONB NOT NULL DEFAULT '[]', -- devices
|
||
DEV_FAULT_RECORD JSONB NOT NULL DEFAULT '[]', -- devices
|
||
DEV_STATUS JSONB NOT NULL DEFAULT '[]', -- devices
|
||
DEV_DYN_SENSE JSONB NOT NULL DEFAULT '[]', -- devices
|
||
DEV_INSTRUCT JSONB NOT NULL DEFAULT '[]', -- devices
|
||
DEV_ETC JSONB NOT NULL DEFAULT '[]', -- devices
|
||
COMPONENTS UUID[] NOT NULL DEFAULT '{}',
|
||
OP INTEGER NOT NULL DEFAULT -1,
|
||
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
||
UNIQUE (TAG)
|
||
);
|
||
|
||
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, -- 要按电力元素的类型(包含可能的结构体类型)来展开;0=TM遥测,1=TS遥信,2=TC遥控,3=TA遥调,4=SP定值
|
||
SIZE INTEGER NOT NULL DEFAULT -1,
|
||
MODE SMALLINT NOT NULL DEFAULT 1, -- 运行模式 1:采集值 0:人工置数
|
||
OPERATIONS JSONB[] NOT NULL DEFAULT '{}', -- 记录 字段command(取mode值),timestamp,value
|
||
DATA_SOURCE JSONB NOT NULL DEFAULT '{}', -- http://server.baseware.net:6875/books/product-design-docs/page/7eacb
|
||
EVENT_PLAN JSONB NOT NULL DEFAULT '{}', -- http://server.baseware.net:6875/books/product-design-docs/page/02522
|
||
BINDING JSONB NOT NULL DEFAULT '{"ct":{"ratio":1.0,"polarity":1,"index":0},"pt":{"ratio":1.0,"polarity":1,"index":0}}',
|
||
BAY_UUID UUID NOT NULL,
|
||
COMPONENT_UUID UUID NOT NULL,
|
||
OP INTEGER NOT NULL DEFAULT -1,
|
||
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
||
UNIQUE (TAG),
|
||
|
||
FOREIGN KEY (BAY_UUID) REFERENCES PUBLIC.BAY (BAY_UUID),
|
||
FOREIGN KEY (COMPONENT_UUID) REFERENCES PUBLIC.COMPONENT (GLOBAL_UUID)
|
||
);
|