refactor: 对齐后端样例工程规范
This commit is contained in:
27
backend/migrations/0001_create_org_gas_station.sql
Normal file
27
backend/migrations/0001_create_org_gas_station.sql
Normal file
@@ -0,0 +1,27 @@
|
||||
-- org_gas_station:可燃气体站主表。identity 由应用生成 UUID V7,禁止自增主键。
|
||||
CREATE TABLE IF NOT EXISTS org_gas_station (
|
||||
identity uuid PRIMARY KEY,
|
||||
station_code varchar(32) NOT NULL UNIQUE,
|
||||
name varchar(128) NOT NULL,
|
||||
principal varchar(64) NOT NULL,
|
||||
service_area varchar(128) NOT NULL,
|
||||
created_at timestamptz NOT NULL,
|
||||
updated_at timestamptz NOT NULL,
|
||||
created_by_identity uuid,
|
||||
updated_by_identity uuid,
|
||||
status varchar(32) NOT NULL DEFAULT 'draft',
|
||||
version integer NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
COMMENT ON TABLE org_gas_station IS '可燃气体站主表';
|
||||
COMMENT ON COLUMN org_gas_station.identity IS '主键,应用生成的 UUID V7';
|
||||
COMMENT ON COLUMN org_gas_station.station_code IS '气站全局唯一业务编码';
|
||||
COMMENT ON COLUMN org_gas_station.name IS '气站名称';
|
||||
COMMENT ON COLUMN org_gas_station.principal IS '气站负责人姓名';
|
||||
COMMENT ON COLUMN org_gas_station.service_area IS '气站授权服务区域';
|
||||
COMMENT ON COLUMN org_gas_station.created_at IS '记录创建时间,UTC';
|
||||
COMMENT ON COLUMN org_gas_station.updated_at IS '记录更新时间,UTC';
|
||||
COMMENT ON COLUMN org_gas_station.created_by_identity IS '创建人 identity';
|
||||
COMMENT ON COLUMN org_gas_station.updated_by_identity IS '更新人 identity';
|
||||
COMMENT ON COLUMN org_gas_station.status IS '状态:draft、enabled、frozen、archived';
|
||||
COMMENT ON COLUMN org_gas_station.version IS '乐观锁版本';
|
||||
28
backend/migrations/0002_create_saf_event.sql
Normal file
28
backend/migrations/0002_create_saf_event.sql
Normal file
@@ -0,0 +1,28 @@
|
||||
-- saf_event:安全事件主表。事件和审计记录不允许物理删除。
|
||||
CREATE TABLE IF NOT EXISTS saf_event (
|
||||
identity uuid PRIMARY KEY,
|
||||
event_code varchar(32) NOT NULL UNIQUE,
|
||||
device_identity uuid,
|
||||
level integer NOT NULL CHECK (level BETWEEN 1 AND 3),
|
||||
title varchar(256) NOT NULL,
|
||||
created_at timestamptz NOT NULL,
|
||||
updated_at timestamptz NOT NULL,
|
||||
created_by_identity uuid,
|
||||
updated_by_identity uuid,
|
||||
status varchar(32) NOT NULL DEFAULT 'pending',
|
||||
version integer NOT NULL DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_saf_event_status_level ON saf_event(status, level);
|
||||
COMMENT ON TABLE saf_event IS '安全事件主表';
|
||||
COMMENT ON COLUMN saf_event.identity IS '主键,应用生成的 UUID V7';
|
||||
COMMENT ON COLUMN saf_event.event_code IS '安全事件全局唯一业务编码';
|
||||
COMMENT ON COLUMN saf_event.device_identity IS '关联 dev_device 的 identity';
|
||||
COMMENT ON COLUMN saf_event.level IS '风险等级:1 高风险、2 中风险、3 低风险';
|
||||
COMMENT ON COLUMN saf_event.title IS '安全事件说明';
|
||||
COMMENT ON COLUMN saf_event.created_at IS '记录创建时间,UTC';
|
||||
COMMENT ON COLUMN saf_event.updated_at IS '记录更新时间,UTC';
|
||||
COMMENT ON COLUMN saf_event.created_by_identity IS '创建人 identity';
|
||||
COMMENT ON COLUMN saf_event.updated_by_identity IS '更新人 identity';
|
||||
COMMENT ON COLUMN saf_event.status IS '状态:pending、processing、closed、overdue';
|
||||
COMMENT ON COLUMN saf_event.version IS '乐观锁版本';
|
||||
@@ -0,0 +1,39 @@
|
||||
-- 首期平台组织与身份主表。所有 identity 均为应用生成的 UUID V7。
|
||||
CREATE TABLE IF NOT EXISTS idn_account (
|
||||
identity uuid PRIMARY KEY, phone varchar(32) NOT NULL UNIQUE, account_type varchar(32) NOT NULL,
|
||||
service_area varchar(128) NOT NULL, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL,
|
||||
created_by_identity uuid, updated_by_identity uuid, status varchar(32) NOT NULL DEFAULT 'enabled', version integer NOT NULL DEFAULT 1
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS org_delivery_point (
|
||||
identity uuid PRIMARY KEY, delivery_code varchar(32) NOT NULL UNIQUE, gas_station_identity uuid,
|
||||
name varchar(128) NOT NULL, service_area varchar(128) NOT NULL, created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL,
|
||||
created_by_identity uuid, updated_by_identity uuid, status varchar(32) NOT NULL DEFAULT 'draft', version integer NOT NULL DEFAULT 1
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS org_service_person (
|
||||
identity uuid PRIMARY KEY, account_identity uuid UNIQUE, gas_station_identity uuid, delivery_point_identity uuid,
|
||||
name varchar(64) NOT NULL, roles varchar(128) NOT NULL, work_status varchar(32) NOT NULL, credential_status varchar(32) NOT NULL,
|
||||
created_at timestamptz NOT NULL, updated_at timestamptz NOT NULL, created_by_identity uuid, updated_by_identity uuid,
|
||||
status varchar(32) NOT NULL DEFAULT 'draft', version integer NOT NULL DEFAULT 1
|
||||
);
|
||||
COMMENT ON TABLE idn_account IS '身份账户主表';
|
||||
COMMENT ON COLUMN idn_account.identity IS '主键,应用生成的 UUID V7';
|
||||
COMMENT ON COLUMN idn_account.phone IS '手机号,敏感字段,展示时脱敏';
|
||||
COMMENT ON COLUMN idn_account.account_type IS '账户类型:user、service_person、admin';
|
||||
COMMENT ON COLUMN idn_account.service_area IS '授权服务区域';
|
||||
COMMENT ON COLUMN idn_account.status IS '状态:enabled、frozen、archived';
|
||||
COMMENT ON TABLE org_delivery_point IS '配送点主表';
|
||||
COMMENT ON COLUMN org_delivery_point.identity IS '主键,应用生成的 UUID V7';
|
||||
COMMENT ON COLUMN org_delivery_point.delivery_code IS '配送点全局唯一业务编码';
|
||||
COMMENT ON COLUMN org_delivery_point.gas_station_identity IS '归属 org_gas_station 的 identity';
|
||||
COMMENT ON COLUMN org_delivery_point.name IS '配送点名称';
|
||||
COMMENT ON COLUMN org_delivery_point.service_area IS '配送服务区域';
|
||||
COMMENT ON COLUMN org_delivery_point.status IS '状态:draft、enabled、frozen、archived';
|
||||
COMMENT ON TABLE org_service_person IS '服务人员主表';
|
||||
COMMENT ON COLUMN org_service_person.identity IS '主键,应用生成的 UUID V7';
|
||||
COMMENT ON COLUMN org_service_person.account_identity IS '关联 idn_account 的 identity';
|
||||
COMMENT ON COLUMN org_service_person.gas_station_identity IS '归属 org_gas_station 的 identity';
|
||||
COMMENT ON COLUMN org_service_person.delivery_point_identity IS '主归属 org_delivery_point 的 identity';
|
||||
COMMENT ON COLUMN org_service_person.roles IS '可执行角色集合';
|
||||
COMMENT ON COLUMN org_service_person.work_status IS '上班与接单状态';
|
||||
COMMENT ON COLUMN org_service_person.credential_status IS '资质状态';
|
||||
COMMENT ON COLUMN org_service_person.status IS '状态:draft、enabled、frozen、archived';
|
||||
5
backend/migrations/README.md
Normal file
5
backend/migrations/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# PostgreSQL 迁移
|
||||
|
||||
迁移文件名遵循 `<序号>_create_<模块前缀_单数实体>.sql`。每个主表必须以应用生成的 UUID V7 `identity` 为主键,并对表、字段、索引、约束和枚举补充中文注释。
|
||||
|
||||
当前 API 的 GORM 自动迁移用于本地开发;生产发布必须先评审并执行本目录的显式 SQL 迁移,再部署新版本服务。
|
||||
Reference in New Issue
Block a user