dbSchema/model/ddl.sql

148 lines
5.0 KiB
MySQL
Raw Normal View History

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,
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,
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 (
ID BIGSERIAL PRIMARY KEY,
NAME VARCHAR(64) NOT NULL DEFAULT '',
TYPE VARCHAR(64) NOT NULL DEFAULT '',
2025-06-19 16:11:01 +08:00
NOMINAL_VOLTAGE 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,
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-02 15:30:28 +08:00
BUSINESS JSONB NOT NULL DEFAULT '{}', -- {"unom":0.0,"bus_connected":""}
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-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 '',
TYPE SMALLINT NOT NULL DEFAULT -1,
2025-07-02 15:30:28 +08:00
DATA_SOURCE JSONB NOT NULL DEFAULT '{}', -- {"type":1,"main_pos":"","sub_pos":""}
2025-05-28 17:07:21 +08:00
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)
);