2025-05-28 17:07:21 +08:00
|
|
|
-- 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;
|
2025-06-03 15:55:34 +08:00
|
|
|
-- DROP TYPE IF EXISTS public.polar_coordinates;
|
2025-05-28 17:07:21 +08:00
|
|
|
|
|
|
|
|
|
2025-06-03 15:55:34 +08:00
|
|
|
CREATE TYPE PUBLIC.POLAR_COORDINATES AS (
|
|
|
|
|
MAGNITUDE DOUBLE PRECISION,
|
|
|
|
|
PHASE DOUBLE PRECISION
|
|
|
|
|
);
|
|
|
|
|
|
2025-05-28 17:07:21 +08:00
|
|
|
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,
|
2025-08-22 11:36:25 +08:00
|
|
|
TAGNAME VARCHAR(32) NOT NULL DEFAULT '',
|
2025-05-28 17:07:21 +08:00
|
|
|
NAME VARCHAR(64) NOT NULL DEFAULT '',
|
|
|
|
|
DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '',
|
|
|
|
|
OP INTEGER NOT NULL DEFAULT -1,
|
2025-08-22 12:20:38 +08:00
|
|
|
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
|
|
|
|
|
UNIQUE (TAGNAME)
|
2025-05-28 17:07:21 +08:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE PUBLIC.ZONE (
|
|
|
|
|
ID BIGSERIAL PRIMARY KEY,
|
|
|
|
|
GRID_ID BIGINT NOT NULL,
|
2025-08-22 11:36:25 +08:00
|
|
|
TAGNAME VARCHAR(32) NOT NULL DEFAULT '',
|
2025-05-28 17:07:21 +08:00
|
|
|
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,
|
|
|
|
|
|
2025-08-22 12:20:38 +08:00
|
|
|
UNIQUE (TAGNAME),
|
|
|
|
|
|
2025-05-28 17:07:21 +08:00
|
|
|
FOREIGN KEY (GRID_ID) REFERENCES PUBLIC.GRID (ID)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE PUBLIC.STATION (
|
|
|
|
|
ID BIGSERIAL PRIMARY KEY,
|
|
|
|
|
ZONE_ID BIGINT NOT NULL,
|
2025-08-22 11:36:25 +08:00
|
|
|
TAGNAME VARCHAR(32) NOT NULL DEFAULT '',
|
2025-05-28 17:07:21 +08:00
|
|
|
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,
|
|
|
|
|
|
2025-08-22 12:20:38 +08:00
|
|
|
UNIQUE (TAGNAME),
|
|
|
|
|
|
2025-05-28 17:07:21 +08:00
|
|
|
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 (
|
2025-07-03 21:06:32 +08:00
|
|
|
GLOBAL_UUID UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
2025-05-28 17:07:21 +08:00
|
|
|
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,
|
2025-08-22 12:19:59 +08:00
|
|
|
CONNECTION JSONB NOT NULL DEFAULT '{}', -- http://server.baseware.net:6875/books/product-design-docs/page/editor
|
2025-05-28 17:07:21 +08:00
|
|
|
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,
|
2025-06-03 16:46:51 +08:00
|
|
|
CONTEXT JSONB NOT NULL DEFAULT '{}',
|
|
|
|
|
FLAG INTEGER NOT NULL DEFAULT 1,
|
2025-05-28 17:07:21 +08:00
|
|
|
DESCRIPTION VARCHAR(512) NOT NULL DEFAULT '',
|
|
|
|
|
OP INTEGER NOT NULL DEFAULT -1,
|
|
|
|
|
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE PUBLIC.BAY (
|
2025-07-07 20:12:31 +08:00
|
|
|
BAY_UUID UUID PRIMARY KEY DEFAULT GEN_RANDOM_UUID(),
|
2025-05-28 17:07:21 +08:00
|
|
|
NAME VARCHAR(64) NOT NULL DEFAULT '',
|
2025-08-22 11:08:55 +08:00
|
|
|
TAG VARCHAR(32) NOT NULL DEFAULT '',
|
2025-05-28 17:07:21 +08:00
|
|
|
TYPE VARCHAR(64) NOT NULL DEFAULT '',
|
2025-07-07 18:11:14 +08:00
|
|
|
UNOM DOUBLE PRECISION NOT NULL DEFAULT -1,
|
2025-06-19 16:11:01 +08:00
|
|
|
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,
|
2025-06-03 15:55:34 +08:00
|
|
|
GRID VARCHAR(64) NOT NULL DEFAULT '',
|
|
|
|
|
ZONE VARCHAR(64) NOT NULL DEFAULT '',
|
|
|
|
|
STATION VARCHAR(64) NOT NULL DEFAULT '',
|
2025-07-25 09:40:22 +08:00
|
|
|
BUSINESS JSONB NOT NULL DEFAULT '{}', -- for Server
|
|
|
|
|
CONTEXT JSONB NOT NULL DEFAULT '{}', -- for UI
|
2025-06-03 17:23:10 +08:00
|
|
|
FROM_UUIDS JSONB NOT NULL DEFAULT '[]', -- uuids
|
|
|
|
|
TO_UUIDS JSONB NOT NULL DEFAULT '[]', -- uuids
|
2025-07-01 16:03:02 +08:00
|
|
|
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
|
2025-07-07 20:12:31 +08:00
|
|
|
COMPONENTS UUID[] NOT NULL DEFAULT '{}',
|
2025-05-28 17:07:21 +08:00
|
|
|
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 '',
|
2025-08-22 12:05:09 +08:00
|
|
|
TYPE SMALLINT NOT NULL DEFAULT -1, -- 要按电力元素的类型(包含可能的结构体类型)来展开
|
2025-05-28 17:07:21 +08:00
|
|
|
SIZE INTEGER NOT NULL DEFAULT -1,
|
2025-08-22 12:05:09 +08:00
|
|
|
DATA_SOURCE JSONB NOT NULL DEFAULT '{}', -- http://server.baseware.net:6875/books/product-design-docs/page/7eacb
|
2025-09-05 14:46:40 +08:00
|
|
|
EVENT_PLAN JSONB NOT NULL DEFAULT '{}', -- http://server.baseware.net:6875/books/product-design-docs/page/02522
|
2025-07-07 20:12:31 +08:00
|
|
|
BAY_UUID UUID NOT NULL,
|
2025-07-03 21:06:32 +08:00
|
|
|
COMPONENT_UUID UUID NOT NULL,
|
2025-05-28 17:07:21 +08:00
|
|
|
OP INTEGER NOT NULL DEFAULT -1,
|
|
|
|
|
TS TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
|
2025-07-07 20:12:31 +08:00
|
|
|
FOREIGN KEY (BAY_UUID) REFERENCES PUBLIC.BAY (BAY_UUID),
|
2025-07-03 21:06:32 +08:00
|
|
|
FOREIGN KEY (COMPONENT_UUID) REFERENCES PUBLIC.COMPONENT (GLOBAL_UUID)
|
2025-05-28 17:07:21 +08:00
|
|
|
);
|