Files
martial-master/docs/数据库版本对比报告.md
n72595987@gmail.com 8b08b0b252 feat: 添加16个martial业务表及相关文档
- 新增同事提供的完整数据库文件 martial_db(1).sql
- 提取16个martial_*表的建表语句 martial_tables_only.sql
- 添加数据库版本对比报告(53表 vs 71对象)
- 添加数据库导入完成报告(开发环境和生产环境)

数据库变更:
- 新增 16 个 martial_* 业务表
- 新增 2 个视图(v_martial_amount_stats, v_martial_participant_stats)
- 保留原有 38 个 blade_* 系统表和 15 个 mt_* 业务表

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 13:50:48 +08:00

7.8 KiB
Raw Blame History

数据库文件对比报告

生成时间2025-11-30

一、文件基本信息

文件名 大小 行数 说明
martial_db.sql 762K 5,331行 原有数据库(旧版)
martial_db(1).sql 833K 6,015行 同事提供的数据库(新版)

差异:新版比旧版多了 71KB,增加了 684行

二、表数量对比

数据库版本 blade_* 系统表 mt_* 业务表 martial_* 业务表 总计
旧版 (martial_db.sql) 38 15 0 51表
新版 (martial_db(1).sql) 38 15 16 67表

核心差异:新版数据库 新增了16个 martial_ 业务表*原有的15个 mt_* 表保持不变。

三、新增的16个 martial_* 表

3.1 新增表清单

新版数据库新增的martial_*表与main分支的16个实体类完全对应

序号 数据库表名 对应实体类 说明
1 martial_activity_schedule MartialActivitySchedule.java 活动赛程
2 martial_athlete MartialAthlete.java 运动员信息
3 martial_banner MartialBanner.java 轮播图/横幅
4 martial_competition MartialCompetition.java 赛事信息
5 martial_deduction_item MartialDeductionItem.java 扣分项目
6 martial_info_publish MartialInfoPublish.java 信息发布
7 martial_judge MartialJudge.java 裁判信息
8 martial_judge_invite MartialJudgeInvite.java 裁判邀请
9 martial_live_update MartialLiveUpdate.java 实时更新
10 martial_project MartialProject.java 比赛项目
11 martial_registration_order MartialRegistrationOrder.java 报名订单
12 martial_result MartialResult.java 比赛结果
13 martial_schedule MartialSchedule.java 赛程安排
14 martial_schedule_athlete MartialScheduleAthlete.java 赛程运动员关联
15 martial_score MartialScore.java 评分记录
16 martial_venue MartialVenue.java 比赛场地

3.2 新增表的分类

核心业务表9个对应旧mt_*表的升级版)

  • martial_athlete运动员
  • martial_competition赛事
  • martial_judge裁判
  • martial_project项目
  • martial_registration_order报名订单
  • martial_result结果
  • martial_schedule赛程
  • martial_score评分
  • martial_venue场地

新增功能表7个旧版没有对应表

  • martial_activity_schedule活动赛程
  • martial_banner轮播图
  • martial_deduction_item扣分项
  • martial_info_publish信息发布
  • martial_judge_invite裁判邀请
  • martial_live_update实时更新
  • martial_schedule_athlete赛程运动员关联

四、表结构变化示例

4.1 运动员表对比mt_athlete vs martial_athlete

字段数量

  • mt_athlete18个字段
  • martial_athlete20+个字段

主要差异

旧表字段 新表字段 变化说明
user_id order_id + competition_id + project_id 新增多个关联ID
name player_name 字段重命名
player_number player_no 字段重命名
- birth_date 新增:出生日期
- nation 新增:民族
id_type id_card_type 字段重命名
- contact_phone 新增:联系电话
unit_name organization + organization_type 扩展为组织信息
- category 新增:组别
- order_num 新增:出场顺序
- introduction 新增:选手简介
- attachments 新增附件JSON

结论martial_athlete表增加了大量业务字段功能更加完善。

4.2 赛事表对比mt_competition vs martial_competition

字段数量

  • mt_competition53个字段
  • martial_competition63个字段

新增字段约10个字段详细差异需进一步分析

五、保留的15个 mt_* 表

5.1 两个版本都保留的mt_*表

新版数据库完整保留了所有15个旧版mt_*表:

  1. mt_athlete运动员
  2. mt_certificate证书
  3. mt_competition赛事
  4. mt_deduction_item扣分项
  5. mt_judge裁判
  6. mt_match_log比赛日志
  7. mt_project项目
  8. mt_registration_order报名订单
  9. mt_registration_project报名项目
  10. mt_result结果
  11. mt_schedule赛程
  12. mt_score评分
  13. mt_team_member队员
  14. mt_user用户
  15. mt_venue场地

注意其中9个mt_*表在新版中有对应的martial_*升级版,形成新旧并存的局面。

5.2 只有mt_*没有martial_*的表6个

以下6个表只存在于mt_*命名空间没有martial_*对应表:

  1. mt_certificate证书
  2. mt_match_log比赛日志
  3. mt_registration_project报名项目
  4. mt_team_member队员
  5. mt_user用户
  6. ⚠️ mt_deduction_item扣分项- 但有martial_deduction_item可能结构不同

六、核心发现与影响

6.1 核心发现

新旧表并存

  • 新版数据库采用了"新旧并存"策略
  • 保留了全部15个mt_*旧表
  • 新增了16个martial_*新表
  • 9个核心业务表有新旧两版mt_* + martial_*

表结构升级

  • martial_*表的字段比对应的mt_*表更丰富
  • 新增了大量业务字段(如选手简介、附件、组织类别等)
  • 字段命名更规范如name→player_nameplayer_number→player_no

新增功能

  • 新增7个功能表轮播图、信息发布、实时更新等
  • 增强了系统的功能完整性

6.2 对当前项目的影响

代码层面

  • main分支的16个实体类Martial*与新数据库的martial_*表完全匹配
  • dev分支已被覆盖为main分支代码实体类已同步
  • ⚠️ 如果项目还在使用旧的mt_*表需要迁移数据到martial_*表

数据迁移

  • 需要将9个核心业务表的数据从mt_迁移到martial_
  • 新表字段更多,可能需要数据转换逻辑

测试影响

  • 之前针对旧实体类Athlete、Competition等的测试需要更新
  • 需要针对新实体类MartialAthlete、MartialCompetition等重写测试

数据库选择 需要决定:

  1. 是否导入新数据库martial_db(1).sql
  2. 是否停用旧的mt_*表?
  3. 是否需要数据迁移?

七、建议的行动方案

方案A全面迁移到新表推荐

优点

  • 表结构更完善,支持更多业务功能
  • 代码已经对齐main分支实体类匹配martial_*表)
  • 避免新旧表混用的混乱

缺点

  • 需要数据迁移工作
  • 需要重写所有测试

步骤

  1. 备份当前数据库
  2. 导入martial_db(1).sql
  3. 编写数据迁移脚本mt_* → martial_*
  4. 更新测试代码
  5. 验证功能

方案B暂时保留新旧并存

优点

  • 无需立即数据迁移
  • 旧功能继续可用

缺点

  • 数据一致性风险
  • 维护复杂度高

方案C只导入6个新功能表

步骤

  1. 从martial_db(1).sql中提取7个新功能表的DDL
  2. 在当前数据库中创建这7个表
  3. 保持9个核心表继续使用mt_*版本
  4. 逐步迁移

八、总结

核心结论

  1. 同事的数据库文件martial_db(1).sql是一个重大升级版本

    • 新增16个martial_*表
    • 保留15个mt_*旧表
    • 表结构更完善,字段更丰富
  2. 与main分支代码完美匹配

    • 16个martial_*表 ↔ 16个Martial实体类
    • 表名、字段都已对齐
  3. 建议采用方案A全面迁移

    • 统一使用martial_*表
    • 废弃mt_*表(或保留作为历史数据)
    • 重写测试代码

报告生成时间2025-11-30 对比文件martial_db.sql vs martial_db(1).sql 文件位置/remote_dev/martial/martial-master/database/martial-db/