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