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

7.7 KiB
Raw Blame History

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