Files
biz-api-cloud-zax/db/20261102_add_mch_checkout_relation.sql
2026-11-02 18:16:37 +08:00

36 lines
2.7 KiB
SQL

-- 商户结账关系:在钱包业务库执行;微服务通常为 pjcloudx_wallet,单体以实际业务库为准。
-- 仅新增两表,不改写商户和历史结账数据。MySQL 8;重复执行不会重复建表。
-- 主表逻辑删除,绑定表仅保存当前有效占用;历史财务依据应另存账单快照。
CREATE TABLE IF NOT EXISTS `mch_checkout_relation`
(
`id` BIGINT NOT NULL COMMENT '关系主键,应用分配雪花ID',
`intermediary_name` VARCHAR(100) NOT NULL COMMENT '中间方名称,保存前去除首尾空格',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '关系备注',
`version` INT NOT NULL DEFAULT 0 COMMENT '并发版本,每次修改递增',
`tenant_id` BIGINT NOT NULL COMMENT '所属租户,服务端确定',
`del_flag` CHAR(1) NOT NULL DEFAULT '0' COMMENT '0有效,1已删除',
`active_name` VARCHAR(100) GENERATED ALWAYS AS
(CASE WHEN `del_flag` = '0' THEN `intermediary_name` ELSE NULL END) STORED COMMENT '有效名称唯一键,删除后释放',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人账号',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间,服务端时区',
`update_by` VARCHAR(64) DEFAULT NULL COMMENT '最后修改人账号',
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间,服务端时区',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mch_checkout_relation_name` (`tenant_id`, `active_name`),
KEY `idx_mch_checkout_relation_page` (`tenant_id`, `del_flag`, `create_time`, `id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商户结账关系主体';
CREATE TABLE IF NOT EXISTS `mch_checkout_relation_merchant`
(
`id` BIGINT NOT NULL COMMENT '绑定主键,应用分配雪花ID',
`relation_id` BIGINT NOT NULL COMMENT '当前结账关系ID,同租户主表主键',
`merchant_id` BIGINT NOT NULL COMMENT '商户ID,引用同租户mch_manage.id',
`tenant_id` BIGINT NOT NULL COMMENT '所属租户,服务端确定',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '本次绑定操作人账号',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '本次绑定时间,服务端时区',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_mch_checkout_relation_merchant` (`tenant_id`, `merchant_id`),
KEY `idx_mch_checkout_relation_members` (`tenant_id`, `relation_id`, `merchant_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商户结账当前有效绑定';