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

241 lines
7.8 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.
# 数据库文件对比报告
生成时间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/