Files
happy-life-star/backend/数据库脚本使用说明.md
T

5.0 KiB

数据库脚本使用说明

📋 脚本信息

  • 脚本名称: mysql_emotion_museum_final.sql
  • 版本: v3.0 Final (雪花算法主键版本) - 开发版本
  • 数据库类型: MySQL 8.0+
  • 字符集: utf8mb4
  • 主键类型: VARCHAR(36) 使用雪花算法生成
  • 关联策略: 无外键约束,通过代码中的ID字段关联

⚠️ 开发版本特性

🔄 DROP & CREATE 模式

该脚本针对开发阶段优化,采用先删除再创建的策略:

  1. 数据库创建: 使用 CREATE DATABASE IF NOT EXISTS
  2. 表删除: 先删除所有现有表 DROP TABLE IF EXISTS
  3. 表创建: 重新创建所有表结构
  4. 索引创建: 创建所有优化索引
  5. 事务控制: 使用事务确保原子性操作

⚠️ 重要警告

  • 数据丢失: 每次执行都会删除所有现有数据
  • 仅限开发: 此版本仅适用于开发环境
  • 表结构更新: 确保表结构始终是最新的
  • 快速迭代: 适合频繁调整表结构的开发阶段

🚀 使用方法

方法1: 命令行执行

# 进入backend目录
cd backend

# 执行脚本(需要输入MySQL root密码)
mysql -u root -p < mysql_emotion_museum_final.sql

方法2: MySQL客户端执行

-- 连接到MySQL
mysql -u root -p

-- 执行脚本
source /path/to/backend/mysql_emotion_museum_final.sql;

方法3: 图形化工具执行

  • 使用 MySQL Workbench、phpMyAdmin 等工具
  • 打开脚本文件并执行

📊 执行结果

成功执行后会显示:

  1. 完成消息: 确认部署成功
  2. 表统计: 显示创建的表数量
  3. 表列表: 显示所有创建的表及其注释

预期输出示例:

message: Emotion Museum Database v3.0 Final (雪花算法主键版本) - 开发版本 deployment completed successfully!
completion_time: 2025-07-13 10:30:00
description: All tables dropped and recreated with VARCHAR(36) primary keys. Development version - data will be lost on re-execution!

total_tables: 15

table_name          | comment        | engine
--------------------|----------------|--------
achievement         | 成就表         | InnoDB
coze_api_call      | Coze API调用表 | InnoDB
comment            | 评论表         | InnoDB
community_post     | 社区帖子表     | InnoDB
conversation       | 对话表         | InnoDB
emotion_analysis   | 情绪分析表     | InnoDB
emotion_record     | 情绪记录表     | InnoDB
growth_topic       | 成长课题表     | InnoDB
guest_user         | 访客用户表     | InnoDB
location_pin       | 地点标记表     | InnoDB
message            | 消息表         | InnoDB
reward             | 奖励表         | InnoDB
topic_interaction  | 课题互动表     | InnoDB
user               | 用户表         | InnoDB
user_stats         | 用户统计表     | InnoDB

🔧 脚本内容

创建的数据库表 (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个)

  • 为所有表的关键字段创建了优化索引
  • 包括单列索引和复合索引
  • 针对查询性能进行了优化

⚠️ 注意事项

执行前检查

  1. MySQL版本: 确保使用MySQL 8.0+
  2. 权限: 确保有创建数据库和表的权限
  3. 磁盘空间: 确保有足够的磁盘空间
  4. 备份: 如果是生产环境,建议先备份

重复执行说明

  • ⚠️ 数据丢失: 每次执行都会删除所有现有数据
  • 🔄 表重建: 所有表都会被删除并重新创建
  • 📊 结构更新: 确保表结构始终是最新版本
  • 📝 日志: 建议保存执行日志以便排查问题

常见问题

  1. 权限不足: 确保MySQL用户有足够权限
  2. 字符集问题: 确保MySQL支持utf8mb4字符集
  3. 存储引擎: 确保MySQL支持InnoDB存储引擎
  4. 数据备份: 开发版本会删除数据,生产环境请谨慎使用

🧪 测试验证

验证脚本

项目中包含测试脚本 test-sql-repeatability.sql 用于验证可重复执行性:

mysql -u root -p < test-sql-repeatability.sql

验证步骤

  1. 首次执行主脚本
  2. 再次执行主脚本
  3. 检查表结构和数据完整性
  4. 验证索引是否正确创建

📞 技术支持

如果在执行过程中遇到问题:

  1. 检查MySQL错误日志
  2. 确认MySQL版本和配置
  3. 验证用户权限设置
  4. 查看脚本执行输出

更新时间: 2025-07-13 脚本版本: v3.0 Final - 开发版本 特性: DROP & CREATE 模式 ⚠️ 警告: 会删除现有数据,仅限开发环境使用