HaniBlindBox/.kiro/specs/database-migration/requirements.md
2026-01-02 05:18:05 +08:00

156 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 所有表都要注释,字段也要有注释