7.7 KiB
Requirements Document
Introduction
将 HoneyBox 盲盒抽奖系统的数据库从 MySQL 5.7 迁移到 SQL Server 2022,以便与 .NET 8 技术栈完美集成。
Glossary
- Source_Database: MySQL 5.7 (youdas 数据库)
- Target_Database: SQL Server 2022 (HoneyBox 数据库)
- Migration_Script: 用于创建表结构和迁移数据的 SQL 脚本
- Core_Table: 核心业务表,必须迁移
- Auxiliary_Table: 辅助业务表,按需迁移
- Deprecated_Table: 废弃表,不迁移
Requirements
Requirement 1: 核心用户表迁移
User Story: As a 开发者, I want to 将用户相关表迁移到 SQL Server, so that 用户数据可以在新系统中正常使用。
Acceptance Criteria
- THE Migration_Script SHALL 创建 users 表,包含所有用户字段并使用 snake_case 命名
- THE Migration_Script SHALL 创建 user_accounts 表,存储用户账户令牌信息
- THE Migration_Script SHALL 创建 user_login_logs 表,记录用户登录日志
- THE Migration_Script SHALL 创建 user_addresses 表,存储用户收货地址
- WHEN 数据迁移完成, THE Target_Database SHALL 包含与 Source_Database 相同数量的用户记录
- THE Migration_Script SHALL 将 Unix 时间戳字段转换为 DATETIME2 类型
Requirement 2: 商品系统表迁移
User Story: As a 开发者, I want to 将商品相关表迁移到 SQL Server, so that 商品数据可以在新系统中正常展示和管理。
Acceptance Criteria
- THE Migration_Script SHALL 创建 goods 表,包含完整 54 个字段
- THE Migration_Script SHALL 创建 goods_items 表(原 goods_list),存储商品奖品列表
- THE Migration_Script SHALL 创建 goods_types 表,存储商品类型配置
- THE Migration_Script SHALL 创建 goods_extensions 表(原 goods_extend),存储商品扩展配置
- THE Migration_Script SHALL 创建 prize_levels 表(原 shang),存储奖品等级配置
- WHEN 数据迁移完成, THE Target_Database SHALL 保留所有商品的福利屋功能配置
- WHEN 数据迁移完成, THE Target_Database SHALL 保留所有商品的限购控制配置
Requirement 3: 订单系统表迁移
User Story: As a 开发者, I want to 将订单相关表迁移到 SQL Server, so that 订单数据可以在新系统中正常处理。
Acceptance Criteria
- THE Migration_Script SHALL 创建 orders 表,包含完整 33 个字段
- THE Migration_Script SHALL 创建 order_items 表(原 order_list),存储订单详情/抽奖结果
- THE Migration_Script SHALL 创建 order_items_recovery 表,存储回收的奖品记录
- THE Migration_Script SHALL 创建 order_items_send 表,存储发货记录
- WHEN 数据迁移完成, THE Target_Database SHALL 保留所有订单的支付方式组合信息
Requirement 4: 财务系统表迁移
User Story: As a 开发者, I want to 将财务相关表迁移到 SQL Server, so that 用户余额和积分记录可以正常追溯。
Acceptance Criteria
- THE Migration_Script SHALL 创建 profit_money 表,记录余额变动明细
- THE Migration_Script SHALL 创建 profit_integral 表,记录积分变动明细
- THE Migration_Script SHALL 创建 profit_money2 表,记录积分2变动明细
- THE Migration_Script SHALL 创建 profit_pay 表,记录支付流水
- THE Migration_Script SHALL 创建 profit_score 表,记录评分变动
- THE Migration_Script SHALL 创建 profit_ou_qi 表,记录欧气值变动
- WHEN 数据迁移完成, THE Target_Database 中用户余额总和 SHALL 与 Source_Database 一致
Requirement 5: 优惠券系统表迁移
User Story: As a 开发者, I want to 将优惠券相关表迁移到 SQL Server, so that 优惠券功能可以正常使用。
Acceptance Criteria
- THE Migration_Script SHALL 创建 coupons 表,存储优惠券模板
- THE Migration_Script SHALL 创建 coupon_receives 表,存储用户领取的优惠券
- THE Migration_Script SHALL 创建 user_coupons 表,存储欧气券
- WHEN 数据迁移完成, THE Target_Database SHALL 保留所有未使用优惠券的有效期信息
Requirement 6: 钻石系统表迁移
User Story: As a 开发者, I want to 将钻石充值相关表迁移到 SQL Server, so that 钻石充值功能可以正常使用。
Acceptance Criteria
- THE Migration_Script SHALL 创建 diamond_products 表,存储钻石商品配置
- THE Migration_Script SHALL 创建 diamond_orders 表,存储钻石订单记录
- WHEN 数据迁移完成, THE Target_Database SHALL 保留所有已支付订单的奖励日志
Requirement 7: 任务和签到系统表迁移
User Story: As a 开发者, I want to 将任务和签到相关表迁移到 SQL Server, so that 每日任务和签到功能可以正常使用。
Acceptance Criteria
- THE Migration_Script SHALL 创建 tasks 表(原 task_list),存储任务配置
- THE Migration_Script SHALL 创建 user_tasks 表(原 user_task_list),存储用户任务完成记录
- THE Migration_Script SHALL 创建 sign_configs 表,存储签到配置
- THE Migration_Script SHALL 创建 user_signs 表,存储用户签到记录
Requirement 8: VIP权益系统表迁移
User Story: As a 开发者, I want to 将VIP权益相关表迁移到 SQL Server, so that VIP等级和权益功能可以正常使用。
Acceptance Criteria
- THE Migration_Script SHALL 创建 vip_levels 表(原 quan_yi_level),存储VIP等级配置
- THE Migration_Script SHALL 创建 vip_level_rewards 表(原 quan_yi_level_jiang),存储VIP等级奖品
- THE Migration_Script SHALL 创建 user_vip_rewards 表(原 user_quan_yi_level_jiang),存储用户领取的VIP奖品
Requirement 9: 系统配置表迁移
User Story: As a 开发者, I want to 将系统配置相关表迁移到 SQL Server, so that 系统配置可以正常读取。
Acceptance Criteria
- THE Migration_Script SHALL 创建 configs 表,存储系统配置
- THE Migration_Script SHALL 创建 deliveries 表,存储快递公司配置
- THE Migration_Script SHALL 创建 pictures 表,存储图片管理数据
- THE Migration_Script SHALL 创建 adverts 表,存储广告配置
Requirement 10: 管理后台表迁移
User Story: As a 开发者, I want to 将管理后台相关表迁移到 SQL Server, so that 后台管理功能可以正常使用。
Acceptance Criteria
- THE Migration_Script SHALL 创建 admins 表,存储管理员信息
- THE Migration_Script SHALL 创建 admin_login_logs 表,存储管理员登录日志(仅结构,不迁移数据)
- THE Migration_Script SHALL 创建 admin_operation_logs 表,存储操作日志(仅结构,不迁移数据)
Requirement 11: 数据完整性验证
User Story: As a 开发者, I want to 验证迁移后的数据完整性, so that 确保没有数据丢失或损坏。
Acceptance Criteria
- WHEN 迁移完成, THE Target_Database 中每个表的记录数 SHALL 与 Source_Database 对应表一致
- WHEN 迁移完成, THE Target_Database 中用户余额总和 SHALL 与 Source_Database 一致
- WHEN 迁移完成, THE Target_Database 中订单金额总和 SHALL 与 Source_Database 一致
- THE Migration_Script SHALL 生成数据验证报告,列出每个表的迁移前后记录数对比
Requirement 12: 索引和约束设计
User Story: As a 开发者, I want to 为迁移后的表创建合适的索引和约束, so that 查询性能和数据完整性得到保障。
Acceptance Criteria
- THE Migration_Script SHALL 为每个表创建主键约束
- THE Migration_Script SHALL 为常用查询字段创建索引
- THE Migration_Script SHALL 所有的表不要任何外键
- THE Migration_Script SHALL 为唯一字段创建唯一约束
- THE Migration_Script SHALL 所有表都要注释,字段也要有注释