154 lines
4.5 KiB
Markdown
154 lines
4.5 KiB
Markdown
# 数据库脚本版本说明
|
|
|
|
## 📋 当前可用脚本
|
|
|
|
### 🔧 开发版本(当前使用)
|
|
- **文件名**: `mysql_emotion_museum_final.sql`
|
|
- **版本**: v3.0 Final - 开发版本
|
|
- **特性**: DROP & CREATE 模式
|
|
- **关联策略**: 无外键约束,代码层维护关联
|
|
- **适用**: 开发环境
|
|
|
|
#### ⚠️ 开发版本特点
|
|
- **先删除后创建**: 每次执行都会删除所有现有表
|
|
- **数据丢失**: 会清空所有现有数据
|
|
- **表结构最新**: 确保表结构始终是最新版本
|
|
- **快速迭代**: 适合频繁调整表结构的开发阶段
|
|
|
|
#### 🚀 使用场景
|
|
- ✅ 本地开发环境
|
|
- ✅ 测试环境
|
|
- ✅ 表结构调整频繁的开发阶段
|
|
- ❌ 生产环境(会丢失数据)
|
|
|
|
## 🔄 脚本执行流程
|
|
|
|
### 开发版本执行流程
|
|
1. **设置环境**: 配置SQL模式和字符集
|
|
2. **禁用外键检查**: 便于删除表
|
|
3. **创建数据库**: 如果不存在则创建
|
|
4. **删除现有表**: 按依赖关系顺序删除所有表
|
|
5. **创建新表**: 重新创建所有15个表
|
|
6. **创建索引**: 创建所有131个优化索引
|
|
7. **重新启用外键检查**: 恢复外键约束
|
|
8. **提交事务**: 确保原子性操作
|
|
|
|
## 📊 表结构信息
|
|
|
|
### 创建的表 (15个)
|
|
1. **user** - 用户表
|
|
2. **conversation** - 对话表
|
|
3. **message** - 消息表
|
|
4. **coze_api_call** - Coze API调用表
|
|
5. **emotion_analysis** - 情绪分析表
|
|
6. **emotion_record** - 情绪记录表
|
|
7. **growth_topic** - 成长课题表
|
|
8. **topic_interaction** - 课题互动表
|
|
9. **location_pin** - 地点标记表
|
|
10. **community_post** - 社区帖子表
|
|
11. **comment** - 评论表
|
|
12. **achievement** - 成就表
|
|
13. **reward** - 奖励表
|
|
14. **guest_user** - 访客用户表
|
|
15. **user_stats** - 用户统计表
|
|
|
|
### 索引统计
|
|
- **总索引数**: 131个
|
|
- **单列索引**: 主要字段的查询优化
|
|
- **复合索引**: 多字段组合查询优化
|
|
- **唯一索引**: 通过表定义的UNIQUE约束自动创建
|
|
|
|
## 🛠️ 使用方法
|
|
|
|
### 执行命令
|
|
```bash
|
|
# 进入backend目录
|
|
cd backend
|
|
|
|
# 执行开发版本脚本
|
|
mysql -u root -p < mysql_emotion_museum_final.sql
|
|
```
|
|
|
|
### 执行前检查
|
|
- ✅ 确认是开发环境
|
|
- ✅ 备份重要数据(如有)
|
|
- ✅ 确认MySQL版本 8.0+
|
|
- ✅ 确认用户权限充足
|
|
|
|
## ⚠️ 重要提醒
|
|
|
|
### 数据安全
|
|
- **开发版本会删除所有数据**
|
|
- **每次执行都是全新开始**
|
|
- **不适合有重要数据的环境**
|
|
|
|
### 版本选择建议
|
|
- **开发阶段**: 使用当前开发版本
|
|
- **测试阶段**: 可以使用开发版本
|
|
- **生产部署**: 需要创建生产安全版本
|
|
|
|
## 🔮 未来计划
|
|
|
|
### 生产版本特性(待开发)
|
|
- 使用 `CREATE TABLE IF NOT EXISTS`
|
|
- 保护现有数据不被删除
|
|
- 支持增量更新和迁移
|
|
- 包含数据迁移脚本
|
|
|
|
### 版本管理
|
|
- 开发版本: 快速迭代,数据重置
|
|
- 生产版本: 安全升级,数据保护
|
|
- 迁移脚本: 版本间数据迁移
|
|
|
|
## 📞 技术支持
|
|
|
|
### 常见问题
|
|
1. **执行失败**: 检查MySQL权限和版本
|
|
2. **数据丢失**: 开发版本的正常行为
|
|
3. **表结构错误**: 重新执行脚本即可修复
|
|
|
|
### 联系方式
|
|
- 查看执行日志排查问题
|
|
- 确认环境配置是否正确
|
|
- 验证MySQL服务状态
|
|
|
|
## 📝 版本更新记录
|
|
|
|
### v3.1 (2025-07-13) - conversation表字段完善
|
|
**🔧 重要更新:修复AI模块数据库字段不匹配问题**
|
|
|
|
#### 新增字段
|
|
- `user_type` VARCHAR(20) - 用户类型 (registered/guest)
|
|
- `emotion_trend` VARCHAR(50) - 情绪趋势
|
|
- `keywords` JSON - 关键词
|
|
- `ai_insights` TEXT - AI洞察
|
|
- `confidence` DECIMAL(3,2) - 分析置信度
|
|
- `client_ip` VARCHAR(45) - 客户端IP地址 (支持IPv6)
|
|
- `user_agent` TEXT - 用户代理信息
|
|
- `summary` TEXT - 对话摘要
|
|
- `tags` JSON - 标签
|
|
|
|
#### 新增索引
|
|
- `idx_conversation_user_type` - 用户类型索引
|
|
- `idx_conversation_emotion_trend` - 情绪趋势索引
|
|
- `idx_conversation_confidence` - 分析置信度索引
|
|
- `idx_conversation_client_ip` - 客户端IP索引
|
|
|
|
#### 解决问题
|
|
- ✅ 修复AI服务启动时的 `Unknown column 'user_type'` 错误
|
|
- ✅ 确保Java实体类与数据库表结构完全匹配
|
|
- ✅ 支持访客用户和注册用户的区分管理
|
|
- ✅ 增强对话数据的分析和统计能力
|
|
|
|
### v3.0 (2025-07-12) - 初始开发版本
|
|
- 创建15个核心数据表
|
|
- 实现雪花算法主键策略
|
|
- 添加131个优化索引
|
|
- 支持完整的情绪博物馆功能模块
|
|
|
|
---
|
|
|
|
**更新时间**: 2025-07-13
|
|
**当前版本**: v3.1 - conversation表字段完善版本
|
|
**状态**: 开发中 🚧
|