| 123456789101112131415161718192021222324252627282930 |
- -- 对话能量石记录表重建脚本
- -- 如果表已存在,先删除(谨慎使用,确保已备份数据)
- -- DROP TABLE IF EXISTS conversation_energy_stones;
- CREATE TABLE IF NOT EXISTS conversation_energy_stones (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- stone_id VARCHAR(64) UNIQUE NOT NULL COMMENT '能量石ID',
- user_id VARCHAR(64) NOT NULL COMMENT '用户ID',
- request_id VARCHAR(64) NULL COMMENT '触发的请求ID',
- threshold_index INT NOT NULL COMMENT '达成阈值的序号(1=30秒,2=60秒...)',
- total_duration_ms BIGINT NOT NULL COMMENT '累计说话时长(毫秒)',
- duration_increment_ms INT NOT NULL COMMENT '本次新增时长(毫秒)',
- appear_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '出现时间',
- clicked_at TIMESTAMP NULL COMMENT '点击时间',
- auto_removed BOOLEAN DEFAULT FALSE COMMENT '是否自动消失',
- metadata JSON NULL COMMENT '扩展信息',
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-
- -- 唯一约束:同一用户同一阈值只能有一条记录
- UNIQUE KEY uk_conversation_stone_threshold (user_id, threshold_index),
-
- -- 索引
- INDEX idx_stone_id (stone_id),
- INDEX idx_user_id (user_id),
- INDEX idx_conversation_stone_user_threshold (user_id, threshold_index),
- INDEX idx_appear_at (appear_at)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
- COMMENT='对话能量石表(按时长发放)';
|