gz-oarms/docs/db/sql/V6.0.0__MR_monitoring_rule_...

135 lines
6.5 KiB
SQL

-- ============================================================================
-- OARMS - MR-1 监测规则管理 DDL
-- Database: DM8 (达梦)
-- Schema: OARMS
-- Version: V6.0.0
-- Date: 2026-05-18
-- Description: 监测规则表 + 规则-法条关联表 + 规则操作历史表
-- ============================================================================
-- ----------------------------------------------------------------------------
-- 1. mr_monitoring_rule - 监测规则
-- ----------------------------------------------------------------------------
CREATE TABLE OARMS.MR_MONITORING_RULE (
id VARCHAR(50) NOT NULL,
rule_code VARCHAR(30) NOT NULL,
rule_name VARCHAR(100) NOT NULL,
rule_content VARCHAR(2000) NOT NULL,
scope_type TINYINT NOT NULL DEFAULT 1,
scope_districts CLOB,
enable_status TINYINT NOT NULL DEFAULT 1,
create_by VARCHAR(50),
create_time TIMESTAMP,
create_name VARCHAR(50),
update_by VARCHAR(50),
update_time TIMESTAMP,
update_name VARCHAR(50),
PRIMARY KEY (id)
);
-- 唯一约束
CREATE UNIQUE INDEX IDX_MR_RULE_CODE ON OARMS.MR_MONITORING_RULE (RULE_CODE);
CREATE UNIQUE INDEX IDX_MR_RULE_NAME ON OARMS.MR_MONITORING_RULE (RULE_NAME);
-- 普通索引
CREATE INDEX IDX_MR_RULE_ENABLE ON OARMS.MR_MONITORING_RULE (ENABLE_STATUS);
CREATE INDEX IDX_MR_RULE_SCOPE ON OARMS.MR_MONITORING_RULE (SCOPE_TYPE);
-- 表注释
COMMENT ON TABLE OARMS.MR_MONITORING_RULE IS '监测规则';
-- 列注释
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.ID IS '主键ID';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.RULE_CODE IS '规则编码(格式: MR-{YYYY}-{seq4})';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.RULE_NAME IS '规则名称';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.RULE_CONTENT IS '规则内容';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.SCOPE_TYPE IS '适用范围类型(1=全部大屏,2=指定区域)';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.SCOPE_DISTRICTS IS '适用区域列表(JSON数组,scope_type=1时为空)';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.ENABLE_STATUS IS '启用状态(1=已启用,2=已停用)';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.CREATE_BY IS '创建人ID';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.CREATE_TIME IS '创建时间';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.CREATE_NAME IS '创建人姓名';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.UPDATE_BY IS '更新人ID';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.UPDATE_TIME IS '更新时间';
COMMENT ON COLUMN OARMS.MR_MONITORING_RULE.UPDATE_NAME IS '更新人姓名';
-- ----------------------------------------------------------------------------
-- 2. mr_rule_law_clause_rel - 规则-法条关联
-- ----------------------------------------------------------------------------
CREATE TABLE OARMS.MR_RULE_LAW_CLAUSE_REL (
id VARCHAR(50) NOT NULL,
rule_id VARCHAR(50) NOT NULL,
clause_id VARCHAR(50) NOT NULL,
create_by VARCHAR(50),
create_time TIMESTAMP,
create_name VARCHAR(50),
update_by VARCHAR(50),
update_time TIMESTAMP,
update_name VARCHAR(50),
PRIMARY KEY (id)
);
-- 唯一约束(同一规则不能重复关联同一法条)
CREATE UNIQUE INDEX IDX_MR_RULE_CLAUSE_UK ON OARMS.MR_RULE_LAW_CLAUSE_REL (RULE_ID, CLAUSE_ID);
-- 普通索引
CREATE INDEX IDX_MR_RULE_CLAUSE_RULE ON OARMS.MR_RULE_LAW_CLAUSE_REL (RULE_ID);
CREATE INDEX IDX_MR_RULE_CLAUSE_CLS ON OARMS.MR_RULE_LAW_CLAUSE_REL (CLAUSE_ID);
-- 表注释
COMMENT ON TABLE OARMS.MR_RULE_LAW_CLAUSE_REL IS '规则-法条关联';
-- 列注释
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.ID IS '主键ID';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.RULE_ID IS '规则ID';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.CLAUSE_ID IS '法条ID';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.CREATE_BY IS '创建人ID';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.CREATE_TIME IS '创建时间';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.CREATE_NAME IS '创建人姓名';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.UPDATE_BY IS '更新人ID';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.UPDATE_TIME IS '更新时间';
COMMENT ON COLUMN OARMS.MR_RULE_LAW_CLAUSE_REL.UPDATE_NAME IS '更新人姓名';
-- ----------------------------------------------------------------------------
-- 3. mr_rule_operation_history - 规则操作历史
-- ----------------------------------------------------------------------------
CREATE TABLE OARMS.MR_RULE_OPERATION_HISTORY (
id VARCHAR(50) NOT NULL,
rule_id VARCHAR(50) NOT NULL,
operator VARCHAR(100) NOT NULL,
operation_type TINYINT NOT NULL,
before_change CLOB,
after_change CLOB,
operated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
create_by VARCHAR(50),
create_time TIMESTAMP,
create_name VARCHAR(50),
update_by VARCHAR(50),
update_time TIMESTAMP,
update_name VARCHAR(50),
PRIMARY KEY (id)
);
-- 普通索引
CREATE INDEX IDX_MR_RULE_HIST_RULE ON OARMS.MR_RULE_OPERATION_HISTORY (RULE_ID);
CREATE INDEX IDX_MR_RULE_HIST_TYPE ON OARMS.MR_RULE_OPERATION_HISTORY (OPERATION_TYPE);
CREATE INDEX IDX_MR_RULE_HIST_TIME ON OARMS.MR_RULE_OPERATION_HISTORY (OPERATED_AT);
-- 表注释
COMMENT ON TABLE OARMS.MR_RULE_OPERATION_HISTORY IS '规则操作历史';
-- 列注释
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.ID IS '主键ID';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.RULE_ID IS '规则ID';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.OPERATOR IS '操作人';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.OPERATION_TYPE IS '操作类型(1=新增,2=编辑,3=删除,4=启用,5=停用)';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.BEFORE_CHANGE IS '变更前快照(JSON)';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.AFTER_CHANGE IS '变更后快照(JSON)';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.OPERATED_AT IS '操作时间';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.CREATE_BY IS '创建人ID';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.CREATE_TIME IS '创建时间';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.CREATE_NAME IS '创建人姓名';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.UPDATE_BY IS '更新人ID';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.UPDATE_TIME IS '更新时间';
COMMENT ON COLUMN OARMS.MR_RULE_OPERATION_HISTORY.UPDATE_NAME IS '更新人姓名';