暂存提交
This commit is contained in:
@@ -161,3 +161,21 @@ CREATE TABLE IF NOT EXISTS ord_outbox_event (
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_outbox_publish (publish_status, next_retry_at, created_at)
|
||||
) ENGINE=InnoDB COMMENT='订单事务Outbox表:与订单业务变更在同一本地事务写入,供后台发布器可靠投递RocketMQ,保证数据库状态与领域事件最终一致;不是普通操作日志';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_idempotency_record (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '幂等记录ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '租户ID',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作者ID',
|
||||
operation VARCHAR(32) NOT NULL COMMENT '幂等操作类型',
|
||||
resource_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '资源ID,创建草稿时为0',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '请求内容SHA-256摘要',
|
||||
status VARCHAR(16) NOT NULL COMMENT '处理状态:PROCESSING或COMPLETED',
|
||||
result_order_id BIGINT UNSIGNED NULL COMMENT '成功结果订单ID',
|
||||
completed_at DATETIME(3) NULL COMMENT '处理完成时间',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_order_idempotency_scope (tenant_id, operator_id, operation, idempotency_key),
|
||||
KEY idx_order_idempotency_created (created_at)
|
||||
) ENGINE=InnoDB COMMENT='订单写接口持久化幂等记录:唯一键保证同租户同操作者并发请求只执行一次';
|
||||
|
||||
Reference in New Issue
Block a user