Files
dolphin-backend/docs/sql/dolphin.sql
2025-12-06 17:10:52 +08:00

192 lines
11 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE IF NOT EXISTS sys_core_dictionary (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
name VARCHAR(500) NOT NULL,
code VARCHAR(200) NOT NULL,
type VARCHAR(50) NOT NULL,
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX uidx_sys_core_dictionary_code ON sys_core_dictionary (code);
COMMENT ON TABLE sys_core_dictionary IS '字典';
COMMENT ON COLUMN sys_core_dictionary.id IS '主键';
COMMENT ON COLUMN sys_core_dictionary.name IS '字典名称';
COMMENT ON COLUMN sys_core_dictionary.code IS '字典代码';
COMMENT ON COLUMN sys_core_dictionary.type IS '字典类型: enum-枚举、tree-树型';
COMMENT ON COLUMN sys_core_dictionary.description IS '字典描述';
COMMENT ON COLUMN sys_core_dictionary.create_time IS '创建时间';
COMMENT ON COLUMN sys_core_dictionary.update_time IS '修改时间';
CREATE TABLE IF NOT EXISTS sys_core_dictionary_item (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
dictionary_id VARCHAR(50) NOT NULL,
parent_id VARCHAR(50),
name VARCHAR(500) NOT NULL,
code VARCHAR(200) NOT NULL,
sort INTEGER NOT NULL DEFAULT 0,
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX uidx1_sys_core_dictionary_item ON sys_core_dictionary_item (dictionary_id, parent_id, code);
COMMENT ON TABLE sys_core_dictionary_item IS '字典项';
COMMENT ON COLUMN sys_core_dictionary_item.id IS '主键';
COMMENT ON COLUMN sys_core_dictionary_item.parent_id IS '父级ID如果为空则为根节点';
COMMENT ON COLUMN sys_core_dictionary_item.dictionary_id IS '字典ID';
COMMENT ON COLUMN sys_core_dictionary_item.name IS '字典项名称';
COMMENT ON COLUMN sys_core_dictionary_item.code IS '字典项代码';
COMMENT ON COLUMN sys_core_dictionary_item.sort IS '字典项排序,升序排列';
COMMENT ON COLUMN sys_core_dictionary_item.description IS '字典项描述';
COMMENT ON COLUMN sys_core_dictionary_item.create_time IS '创建时间';
COMMENT ON COLUMN sys_core_dictionary_item.update_time IS '修改时间';
CREATE TABLE sys_core_sequence (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
name VARCHAR(500) NOT NULL,
code VARCHAR(200) NOT NULL,
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
INSERT INTO sys_core_dictionary
VALUES('019ac45a-124d-7fe6-9a03-b9b9c54aacd0', '表-字典-类型', 'table.sys_core_dictionary.type', 'enum');
INSERT INTO sys_core_dictionary_item
VALUES ('019ac45c-e548-7bf5-845f-702bc75ba8a4', '019ac45a-124d-7fe6-9a03-b9b9c54aacd0', NULL, '枚举', 'enum', 0),
('019ac45f-6a73-7dad-8334-1961f75ffc7d', '019ac45a-124d-7fe6-9a03-b9b9c54aacd0', NULL, '树型', 'tree', 1);
CREATE TABLE IF NOT EXISTS sys_rbac_region (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
parent_id VARCHAR(50),
parent_code VARCHAR(50),
root_id VARCHAR(50),
root_code VARCHAR(50),
name VARCHAR(500) NOT NULL,
code VARCHAR(200) NOT NULL,
ext_code VARCHAR(200),
sort INTEGER NOT NULL DEFAULT 0,
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX uidx1_sys_rbac_region ON sys_rbac_region (parent_id, code);
CREATE UNIQUE INDEX uidx2_sys_rbac_region ON sys_rbac_region (parent_code, code);
COMMENT ON TABLE sys_rbac_region IS '区划项';
COMMENT ON COLUMN sys_rbac_region.id IS '主键';
COMMENT ON COLUMN sys_rbac_region.parent_id IS '上级区划ID';
COMMENT ON COLUMN sys_rbac_region.parent_code IS '上级区划代码';
COMMENT ON COLUMN sys_rbac_region.root_id IS '主区划ID';
COMMENT ON COLUMN sys_rbac_region.root_code IS '主区划代码';
COMMENT ON COLUMN sys_rbac_region.name IS '区划名称';
COMMENT ON COLUMN sys_rbac_region.code IS '区划代码';
COMMENT ON COLUMN sys_rbac_region.ext_code IS '区划扩展代码';
COMMENT ON COLUMN sys_rbac_region.sort IS '区划排序';
COMMENT ON COLUMN sys_rbac_region.description IS '区划描述';
COMMENT ON COLUMN sys_rbac_region.create_time IS '创建时间';
COMMENT ON COLUMN sys_rbac_region.update_time IS '修改时间';
CREATE TABLE IF NOT EXISTS sys_rbac_department (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
region_id VARCHAR(50),
parent_id VARCHAR(50),
name VARCHAR(500) NOT NULL,
code VARCHAR(200) NOT NULL,
sort INTEGER NOT NULL DEFAULT 0,
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX uidx_sys_rbac_department_code ON sys_rbac_department (code);
COMMENT ON TABLE sys_rbac_department IS '部门表';
COMMENT ON COLUMN sys_rbac_department.id IS '主键';
COMMENT ON COLUMN sys_rbac_department.region_id IS '区划ID';
COMMENT ON COLUMN sys_rbac_department.parent_id IS '上级部门ID';
COMMENT ON COLUMN sys_rbac_department.name IS '部门名称';
COMMENT ON COLUMN sys_rbac_department.code IS '部门代码';
COMMENT ON COLUMN sys_rbac_department.sort IS '部门排序';
COMMENT ON COLUMN sys_rbac_department.description IS '描述';
COMMENT ON COLUMN sys_rbac_department.create_time IS '创建时间';
COMMENT ON COLUMN sys_rbac_department.update_time IS '修改时间';
INSERT INTO sys_rbac_department
VALUES('019ac468-16b9-7abc-8f2d-7a8d59034969', NULL, NULL, '系统管理部', 'DEPT00001', 0);
CREATE TABLE IF NOT EXISTS sys_rbac_role (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
name VARCHAR(500) NOT NULL,
code VARCHAR(200) NOT NULL,
sort INTEGER NOT NULL DEFAULT 0,
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX uidx_sys_rbac_role_code ON sys_rbac_role (code);
COMMENT ON TABLE sys_rbac_role IS '角色表';
COMMENT ON COLUMN sys_rbac_role.id IS '主键';
COMMENT ON COLUMN sys_rbac_role.name IS '角色名称';
COMMENT ON COLUMN sys_rbac_role.code IS '角色代码';
COMMENT ON COLUMN sys_rbac_role.sort IS '角色排序';
COMMENT ON COLUMN sys_rbac_role.description IS '描述';
COMMENT ON COLUMN sys_rbac_role.create_time IS '创建时间';
COMMENT ON COLUMN sys_rbac_role.update_time IS '修改时间';
INSERT INTO sys_rbac_role
VALUES('019ac46a-bf32-7183-a119-45d09f982a31', '系统管理员', 'ROLE00001', 0);
CREATE TABLE IF NOT EXISTS sys_rbac_user (
id VARCHAR(50) NOT NULL DEFAULT uuidv7(),
username VARCHAR(500) NOT NULL,
nickname VARCHAR(500),
password VARCHAR(200) NOT NULL,
enabled VARCHAR(2) NOT NULL DEFAULT '1',
description TEXT,
create_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
update_time TIMESTAMPTZ NOT NULL DEFAULT current_timestamp,
PRIMARY KEY (id)
);
CREATE UNIQUE INDEX ui_sys_rbac_user_username ON sys_rbac_user (username);
COMMENT ON TABLE sys_rbac_user IS '用户表';
COMMENT ON COLUMN sys_rbac_user.id IS '主键';
COMMENT ON COLUMN sys_rbac_user.username IS '用户名称';
COMMENT ON COLUMN sys_rbac_user.nickname IS '用户昵称';
COMMENT ON COLUMN sys_rbac_user.password IS '用户密码';
COMMENT ON COLUMN sys_rbac_user.enabled IS '是否启用0-未启用/1-启用';
COMMENT ON COLUMN sys_rbac_user.description IS '描述';
COMMENT ON COLUMN sys_rbac_user.create_time IS '创建时间';
COMMENT ON COLUMN sys_rbac_user.update_time IS '修改时间';
INSERT INTO sys_rbac_user
VALUES('019ac46c-5a72-7af2-932b-bf0a31741e98', 'admin', '管理员', '$2a$10$5XwMwhPjHEL8XPsR1bgfQuBnOtCC5u3Y/CdD3MbTFMUiEFcazlYMq', '1');
CREATE TABLE IF NOT EXISTS sys_rbac_user_department (
user_id VARCHAR(50) NOT NULL,
department_id VARCHAR(50) NOT NULL,
PRIMARY KEY (user_id, department_id)
);
COMMENT ON TABLE sys_rbac_user_department IS '用户部门表';
COMMENT ON COLUMN sys_rbac_user_department.user_id IS '用户ID';
COMMENT ON COLUMN sys_rbac_user_department.department_id IS '部门ID';
INSERT INTO sys_rbac_user_department
VALUES('019ac46c-5a72-7af2-932b-bf0a31741e98', '019ac468-16b9-7abc-8f2d-7a8d59034969');
CREATE TABLE IF NOT EXISTS sys_rbac_user_role (
user_id VARCHAR(50) NOT NULL,
role_id VARCHAR(50) NOT NULL,
PRIMARY KEY (user_id, role_id)
);
COMMENT ON TABLE sys_rbac_user_role IS '用户部门表';
COMMENT ON COLUMN sys_rbac_user_role.user_id IS '用户ID';
COMMENT ON COLUMN sys_rbac_user_role.role_id IS '角色ID';
INSERT INTO sys_rbac_user_role
VALUES('019ac46c-5a72-7af2-932b-bf0a31741e98', '019ac46a-bf32-7183-a119-45d09f982a31');