- 新增同事提供的完整数据库文件 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>
241 lines
7.8 KiB
Markdown
241 lines
7.8 KiB
Markdown
# 数据库文件对比报告
|
||
|
||
生成时间: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/
|