recreate_conversation_energy_stones.sql 1.5 KB

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