229 lines
11 KiB
SQL
229 lines
11 KiB
SQL
-- 规则引擎模块核心表结构(DM8)
|
||
-- 如果需要重建表,请在执行前备份现有数据
|
||
|
||
DROP TABLE IF EXISTS rule_release_record;
|
||
DROP TABLE IF EXISTS rule_business_relation;
|
||
DROP TABLE IF EXISTS rule_business;
|
||
DROP TABLE IF EXISTS rule_chain_dependency;
|
||
DROP TABLE IF EXISTS rule_chain;
|
||
DROP TABLE IF EXISTS rule_definition;
|
||
|
||
CREATE TABLE rule_definition (
|
||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
code VARCHAR(128) NOT NULL,
|
||
name VARCHAR(128) NOT NULL,
|
||
type SMALLINT NOT NULL,
|
||
dsl CLOB,
|
||
script_language VARCHAR(64),
|
||
bean_ref VARCHAR(128),
|
||
config_json CLOB,
|
||
status SMALLINT DEFAULT 0 NOT NULL,
|
||
version VARCHAR(64),
|
||
remark VARCHAR(512),
|
||
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
deleted TINYINT DEFAULT 0 NOT NULL,
|
||
tenant_id BIGINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE rule_definition IS '规则定义表';
|
||
COMMENT ON COLUMN rule_definition.id IS '规则定义编号';
|
||
COMMENT ON COLUMN rule_definition.code IS '规则编码';
|
||
COMMENT ON COLUMN rule_definition.name IS '规则名称';
|
||
COMMENT ON COLUMN rule_definition.type IS '规则类型';
|
||
COMMENT ON COLUMN rule_definition.dsl IS 'LiteFlow DSL 脚本';
|
||
COMMENT ON COLUMN rule_definition.script_language IS '脚本语言';
|
||
COMMENT ON COLUMN rule_definition.bean_ref IS 'Spring Bean 引用';
|
||
COMMENT ON COLUMN rule_definition.config_json IS '规则配置 JSON';
|
||
COMMENT ON COLUMN rule_definition.status IS '规则状态';
|
||
COMMENT ON COLUMN rule_definition.version IS '规则版本号';
|
||
COMMENT ON COLUMN rule_definition.remark IS '备注';
|
||
COMMENT ON COLUMN rule_definition.creator IS '创建者';
|
||
COMMENT ON COLUMN rule_definition.create_time IS '创建时间';
|
||
COMMENT ON COLUMN rule_definition.updater IS '更新者';
|
||
COMMENT ON COLUMN rule_definition.update_time IS '更新时间';
|
||
COMMENT ON COLUMN rule_definition.deleted IS '是否删除';
|
||
COMMENT ON COLUMN rule_definition.tenant_id IS '租户编号';
|
||
|
||
CREATE UNIQUE INDEX uk_rule_definition_code_tenant ON rule_definition (code, tenant_id);
|
||
|
||
CREATE TABLE rule_chain (
|
||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
code VARCHAR(128) NOT NULL,
|
||
name VARCHAR(128) NOT NULL,
|
||
description VARCHAR(512),
|
||
structure_json CLOB,
|
||
liteflow_dsl CLOB,
|
||
status SMALLINT DEFAULT 0 NOT NULL,
|
||
version VARCHAR(64),
|
||
remark VARCHAR(512),
|
||
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
deleted TINYINT DEFAULT 0 NOT NULL,
|
||
tenant_id BIGINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE rule_chain IS '规则链表';
|
||
COMMENT ON COLUMN rule_chain.id IS '规则链编号';
|
||
COMMENT ON COLUMN rule_chain.code IS '规则链编码';
|
||
COMMENT ON COLUMN rule_chain.name IS '规则链名称';
|
||
COMMENT ON COLUMN rule_chain.description IS '规则链描述';
|
||
COMMENT ON COLUMN rule_chain.structure_json IS '链路结构 JSON';
|
||
COMMENT ON COLUMN rule_chain.liteflow_dsl IS 'LiteFlow DSL 内容';
|
||
COMMENT ON COLUMN rule_chain.status IS '规则链状态';
|
||
COMMENT ON COLUMN rule_chain.version IS '版本号';
|
||
COMMENT ON COLUMN rule_chain.remark IS '备注';
|
||
COMMENT ON COLUMN rule_chain.creator IS '创建者';
|
||
COMMENT ON COLUMN rule_chain.create_time IS '创建时间';
|
||
COMMENT ON COLUMN rule_chain.updater IS '更新者';
|
||
COMMENT ON COLUMN rule_chain.update_time IS '更新时间';
|
||
COMMENT ON COLUMN rule_chain.deleted IS '是否删除';
|
||
COMMENT ON COLUMN rule_chain.tenant_id IS '租户编号';
|
||
|
||
CREATE UNIQUE INDEX uk_rule_chain_code_tenant ON rule_chain (code, tenant_id);
|
||
CREATE INDEX idx_rule_chain_status ON rule_chain (status);
|
||
|
||
CREATE TABLE rule_chain_dependency (
|
||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
parent_chain_id BIGINT NOT NULL,
|
||
child_rule_id BIGINT NOT NULL,
|
||
link_type SMALLINT NOT NULL,
|
||
order_index INTEGER,
|
||
parallel_group VARCHAR(64),
|
||
condition_expr VARCHAR(512),
|
||
config_json CLOB,
|
||
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
deleted TINYINT DEFAULT 0 NOT NULL,
|
||
tenant_id BIGINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE rule_chain_dependency IS '规则链依赖表';
|
||
COMMENT ON COLUMN rule_chain_dependency.id IS '依赖编号';
|
||
COMMENT ON COLUMN rule_chain_dependency.parent_chain_id IS '父规则链编号';
|
||
COMMENT ON COLUMN rule_chain_dependency.child_rule_id IS '引用的规则定义编号';
|
||
COMMENT ON COLUMN rule_chain_dependency.link_type IS '节点类型';
|
||
COMMENT ON COLUMN rule_chain_dependency.order_index IS '执行顺序';
|
||
COMMENT ON COLUMN rule_chain_dependency.parallel_group IS '并行组标识';
|
||
COMMENT ON COLUMN rule_chain_dependency.condition_expr IS '条件表达式';
|
||
COMMENT ON COLUMN rule_chain_dependency.config_json IS '节点配置 JSON';
|
||
COMMENT ON COLUMN rule_chain_dependency.creator IS '创建者';
|
||
COMMENT ON COLUMN rule_chain_dependency.create_time IS '创建时间';
|
||
COMMENT ON COLUMN rule_chain_dependency.updater IS '更新者';
|
||
COMMENT ON COLUMN rule_chain_dependency.update_time IS '更新时间';
|
||
COMMENT ON COLUMN rule_chain_dependency.deleted IS '是否删除';
|
||
COMMENT ON COLUMN rule_chain_dependency.tenant_id IS '租户编号';
|
||
|
||
CREATE INDEX idx_rule_chain_dependency_parent ON rule_chain_dependency (parent_chain_id);
|
||
CREATE INDEX idx_rule_chain_dependency_child ON rule_chain_dependency (child_rule_id);
|
||
|
||
CREATE TABLE rule_business (
|
||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
business VARCHAR(128) NOT NULL,
|
||
rule_chain_id BIGINT,
|
||
override_strategy SMALLINT DEFAULT 0 NOT NULL,
|
||
locked TINYINT DEFAULT 0 NOT NULL,
|
||
effective_version VARCHAR(64),
|
||
config_json CLOB,
|
||
remark VARCHAR(512),
|
||
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
deleted TINYINT DEFAULT 0 NOT NULL,
|
||
tenant_id BIGINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE rule_business IS '业务规则绑定表';
|
||
COMMENT ON COLUMN rule_business.id IS '业务绑定编号';
|
||
COMMENT ON COLUMN rule_business.business IS '业务标识';
|
||
COMMENT ON COLUMN rule_business.rule_chain_id IS '绑定的规则链编号';
|
||
COMMENT ON COLUMN rule_business.override_strategy IS '覆盖策略';
|
||
COMMENT ON COLUMN rule_business.locked IS '是否锁定';
|
||
COMMENT ON COLUMN rule_business.effective_version IS '生效版本';
|
||
COMMENT ON COLUMN rule_business.config_json IS '业务配置 JSON';
|
||
COMMENT ON COLUMN rule_business.remark IS '备注';
|
||
COMMENT ON COLUMN rule_business.creator IS '创建者';
|
||
COMMENT ON COLUMN rule_business.create_time IS '创建时间';
|
||
COMMENT ON COLUMN rule_business.updater IS '更新者';
|
||
COMMENT ON COLUMN rule_business.update_time IS '更新时间';
|
||
COMMENT ON COLUMN rule_business.deleted IS '是否删除';
|
||
COMMENT ON COLUMN rule_business.tenant_id IS '租户编号';
|
||
|
||
CREATE UNIQUE INDEX uk_rule_business_tenant ON rule_business (business, tenant_id);
|
||
CREATE INDEX idx_rule_business_chain ON rule_business (rule_chain_id);
|
||
|
||
CREATE TABLE rule_business_relation (
|
||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
parent_business VARCHAR(128) NOT NULL,
|
||
child_business VARCHAR(128) NOT NULL,
|
||
sort INTEGER DEFAULT 0 NOT NULL,
|
||
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
deleted TINYINT DEFAULT 0 NOT NULL,
|
||
tenant_id BIGINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE rule_business_relation IS '业务继承关系表';
|
||
COMMENT ON COLUMN rule_business_relation.id IS '继承关系编号';
|
||
COMMENT ON COLUMN rule_business_relation.parent_business IS '父业务标识';
|
||
COMMENT ON COLUMN rule_business_relation.child_business IS '子业务标识';
|
||
COMMENT ON COLUMN rule_business_relation.sort IS '排序';
|
||
COMMENT ON COLUMN rule_business_relation.creator IS '创建者';
|
||
COMMENT ON COLUMN rule_business_relation.create_time IS '创建时间';
|
||
COMMENT ON COLUMN rule_business_relation.updater IS '更新者';
|
||
COMMENT ON COLUMN rule_business_relation.update_time IS '更新时间';
|
||
COMMENT ON COLUMN rule_business_relation.deleted IS '是否删除';
|
||
COMMENT ON COLUMN rule_business_relation.tenant_id IS '租户编号';
|
||
|
||
CREATE UNIQUE INDEX uk_rule_business_relation_child ON rule_business_relation (child_business, tenant_id);
|
||
CREATE INDEX idx_rule_business_relation_parent ON rule_business_relation (parent_business);
|
||
|
||
CREATE TABLE rule_release_record (
|
||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||
business VARCHAR(128) NOT NULL,
|
||
chain_id VARCHAR(255) NOT NULL,
|
||
chain_code VARCHAR(128),
|
||
version VARCHAR(64) NOT NULL,
|
||
status SMALLINT DEFAULT 0 NOT NULL,
|
||
release_user_id BIGINT,
|
||
release_user_name VARCHAR(128),
|
||
release_time TIMESTAMP,
|
||
remark VARCHAR(512),
|
||
creator VARCHAR(64) DEFAULT '' NOT NULL,
|
||
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
updater VARCHAR(64) DEFAULT '' NOT NULL,
|
||
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||
deleted TINYINT DEFAULT 0 NOT NULL,
|
||
tenant_id BIGINT DEFAULT 0 NOT NULL
|
||
);
|
||
|
||
COMMENT ON TABLE rule_release_record IS '规则发布记录表';
|
||
COMMENT ON COLUMN rule_release_record.id IS '发布记录编号';
|
||
COMMENT ON COLUMN rule_release_record.business IS '业务标识';
|
||
COMMENT ON COLUMN rule_release_record.chain_id IS '生成链路标识';
|
||
COMMENT ON COLUMN rule_release_record.chain_code IS '规则链编码';
|
||
COMMENT ON COLUMN rule_release_record.version IS '发布版本';
|
||
COMMENT ON COLUMN rule_release_record.status IS '发布状态';
|
||
COMMENT ON COLUMN rule_release_record.release_user_id IS '发布人编号';
|
||
COMMENT ON COLUMN rule_release_record.release_user_name IS '发布人名称';
|
||
COMMENT ON COLUMN rule_release_record.release_time IS '发布时间';
|
||
COMMENT ON COLUMN rule_release_record.remark IS '备注';
|
||
COMMENT ON COLUMN rule_release_record.creator IS '创建者';
|
||
COMMENT ON COLUMN rule_release_record.create_time IS '创建时间';
|
||
COMMENT ON COLUMN rule_release_record.updater IS '更新者';
|
||
COMMENT ON COLUMN rule_release_record.update_time IS '更新时间';
|
||
COMMENT ON COLUMN rule_release_record.deleted IS '是否删除';
|
||
COMMENT ON COLUMN rule_release_record.tenant_id IS '租户编号';
|
||
|
||
CREATE INDEX idx_rule_release_business_time ON rule_release_record (business, release_time);
|
||
CREATE UNIQUE INDEX uk_rule_release_business_version ON rule_release_record (business, version, tenant_id);
|