deliver: 交付收口(引擎代为提交)
This commit is contained in:
parent
cda913a694
commit
3d8fe09c0d
@ -3,42 +3,41 @@
|
||||
-- 幂等: CREATE ... IF NOT EXISTS / DROP ... IF EXISTS
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `pbl_runtime_event` (
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID(逻辑主键;物理主键=(id,created_at))',
|
||||
`tenant_id` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '租户ID(多租户强制打头)',
|
||||
`event_uid` VARCHAR(64) NOT NULL COMMENT '事件UID(uuid,应用层生成)',
|
||||
`event_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '事件编码',
|
||||
`idem_key` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '幂等键(同键重复投递只落一条)',
|
||||
`world_id` BIGINT NOT NULL DEFAULT 0 COMMENT '世界ID(引用 world 基表,只读)',
|
||||
`scene_id` BIGINT NOT NULL DEFAULT 0 COMMENT '场景/会话ID(引用 scense 基表,只读)',
|
||||
`session_id` BIGINT NOT NULL DEFAULT 0 COMMENT '游戏会话ID(M11a 语义,与 scene_id 同域)',
|
||||
`entity_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '实体ID(引用 entity 基表,只读)',
|
||||
`actor_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '触发者(服务端会话解析,客户端禁填)',
|
||||
`event_type` VARCHAR(64) NOT NULL COMMENT '事件类型',
|
||||
`payload` TEXT NULL COMMENT '事件负载JSON(任务书字段)',
|
||||
`payload_json` LONGTEXT NULL COMMENT '事件负载JSON(M11a 写路径列名,与 payload 同义留宽)',
|
||||
`causation_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '因果链:引发本事件的事件UID',
|
||||
`seq` BIGINT NOT NULL DEFAULT 0 COMMENT '会话内单调序号(轮询游标,应用层生成)',
|
||||
`seq_no` BIGINT NOT NULL DEFAULT 0 COMMENT '会话内单调序号(M11a 写路径列名)',
|
||||
`source` VARCHAR(32) NOT NULL DEFAULT 'runtime' COMMENT '来源:runtime/agent/script/client_intent',
|
||||
`state` VARCHAR(16) NOT NULL DEFAULT 'applied' COMMENT 'applied/rejected/rolled_back',
|
||||
`state_version` BIGINT NOT NULL DEFAULT 0 COMMENT '本事件推进到的服务端权威版本',
|
||||
`tx_group` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '事务组(同组同事务)',
|
||||
`broadcast` TINYINT NOT NULL DEFAULT 1 COMMENT '是否参与广播 0/1',
|
||||
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(分区键,禁TIMESTAMP)',
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间戳(append-only:永不 UPDATE)',
|
||||
`occurred_at` DATETIME NULL COMMENT '兼容列(M11a 旧分区键,新写入可空)',
|
||||
PRIMARY KEY (`id`, `created_at`),
|
||||
UNIQUE KEY `uk_event_uid` (`tenant_id`, `event_uid`, `created_at`),
|
||||
UNIQUE KEY `uk_tenant_idem` (`tenant_id`, `idem_key`, `created_at`),
|
||||
KEY `ix_scene_created` (`scene_id`, `created_at`),
|
||||
KEY `ix_tenant_session_seq` (`tenant_id`, `session_id`, `seq`),
|
||||
KEY `ix_tenant_session_seqno` (`tenant_id`, `session_id`, `seq_no`),
|
||||
KEY `ix_tenant_world_type` (`tenant_id`, `world_id`, `event_type`),
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||||
`tenant_id` VARCHAR(32) NOT NULL,
|
||||
`event_uid` VARCHAR(64) NOT NULL,
|
||||
`session_id` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`world_id` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`scene_id` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`actor_id` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`event_type` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`event_code` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`idem_key` VARCHAR(128) NOT NULL DEFAULT '',
|
||||
`entity_id` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`payload` TEXT,
|
||||
`payload_json` LONGTEXT,
|
||||
`seq` BIGINT NOT NULL DEFAULT 0,
|
||||
`seq_no` BIGINT NOT NULL DEFAULT 0,
|
||||
`source` VARCHAR(32) NOT NULL DEFAULT '',
|
||||
`state` VARCHAR(32) NOT NULL DEFAULT '',
|
||||
`tx_group` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`broadcast` VARCHAR(16) NOT NULL DEFAULT '',
|
||||
`causation_id` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`state_version` BIGINT NOT NULL DEFAULT 0,
|
||||
`created_by` VARCHAR(64) NOT NULL DEFAULT '',
|
||||
`occurred_at` DATETIME NULL,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`,`created_at`),
|
||||
UNIQUE KEY `uk_event_uid` (`tenant_id`,`event_uid`,`created_at`),
|
||||
UNIQUE KEY `uk_tenant_idem` (`tenant_id`,`idem_key`,`created_at`),
|
||||
KEY `ix_tenant_session_seq` (`tenant_id`,`session_id`,`seq`),
|
||||
KEY `ix_tenant_session_seqno` (`tenant_id`,`session_id`,`seq_no`),
|
||||
KEY `ix_tenant_world_type` (`tenant_id`,`world_id`,`event_type`),
|
||||
KEY `ix_scene_created` (`scene_id`,`created_at`),
|
||||
KEY `ix_tx_group` (`tx_group`),
|
||||
KEY `ix_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
|
||||
COMMENT='运行时事件流(append-only,按月RANGE分区,保留14个月)'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
||||
PARTITION BY RANGE COLUMNS(`created_at`) (
|
||||
PARTITION `p202609` VALUES LESS THAN (DATE '2026-10-01'),
|
||||
PARTITION `p202610` VALUES LESS THAN (DATE '2026-11-01'),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user