-- 编码规则定义表 CREATE TABLE base_code_rule ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', rule_name VARCHAR(64) NOT NULL COMMENT '规则名称', rule_code VARCHAR(32) NOT NULL COMMENT '规则编码(唯一标识,调用时传入)', segment_config JSON NOT NULL COMMENT '分段配置(JSON数组)', separator VARCHAR(8) DEFAULT '' COMMENT '分隔符(- / _ . 或空)', letter_case TINYINT DEFAULT 0 COMMENT '字母大小写:0=原样 1=全大写 2=全小写', total_length INT DEFAULT 0 COMMENT '固定总长度约束(0=不限制)', seq_strategy VARCHAR(16) DEFAULT 'segment' COMMENT '序号策略:segment=号段预分配 lock=分布式锁实时', status TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0=启用 1=禁用', remark VARCHAR(256) DEFAULT '' COMMENT '备注', creator VARCHAR(64) DEFAULT '' COMMENT '创建者', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updater VARCHAR(64) DEFAULT '' COMMENT '更新者', update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', deleted TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (id), UNIQUE KEY uk_rule_code (rule_code) ) COMMENT '编码规则定义表'; -- 编码流水号段记录表 CREATE TABLE base_code_sequence ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', rule_id BIGINT NOT NULL COMMENT '规则ID,关联 base_code_rule.id', reset_key VARCHAR(64) NOT NULL DEFAULT '' COMMENT '重置维度键(如按天:20260715,全局:GLOBAL)', current_value BIGINT NOT NULL DEFAULT 0 COMMENT '当前已分配的最大序号', max_value BIGINT NOT NULL DEFAULT 9999 COMMENT '序号最大值上限', creator VARCHAR(64) DEFAULT '' COMMENT '创建者', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updater VARCHAR(64) DEFAULT '' COMMENT '更新者', update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', deleted TINYINT NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (id), UNIQUE KEY idx_rule_reset (rule_id, reset_key) ) COMMENT '编码流水号段记录表';