# 数据库文件对比报告 生成时间: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_athlete:18个字段 - martial_athlete:20+个字段 **主要差异**: | 旧表字段 | 新表字段 | 变化说明 | |---------|---------|---------| | 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_competition:53个字段 - martial_competition:63个字段 **新增字段**:约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_name,player_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/