-- 情景对话模式:用户-特殊情景-话题对话记录表 -- 用于记录用户在某个特殊场景下对某个话题已进行过对话,选场景时排除「3 个话题都聊完」的场景,选话题时仅在未完成话题中等概率选择。 -- 参考:项目文档/情景对话模式设计与改造方案.md CREATE TABLE IF NOT EXISTS user_special_scenario_topic_logs ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键', user_id VARCHAR(64) NOT NULL COMMENT '用户ID(关联 users.user_id)', scenario_key VARCHAR(32) NOT NULL COMMENT '场景: window|reading|eating', topic_key VARCHAR(32) NOT NULL COMMENT '话题键(如 weather|season|travel 等)', conversed_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '该场景该话题下首次对话时间', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', UNIQUE KEY uk_user_scenario_topic (user_id, scenario_key, topic_key), INDEX idx_user_scenario (user_id, scenario_key) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户情景话题对话记录(用于概率排除与不再触发)';