Files
plates-server/docs/pilates-database-upgrade-summary.md
richarjiang 0edcfdcae9 新增普拉提训练系统的数据库结构和数据导入功能
- 创建普拉提分类和动作数据的SQL导入脚本,支持垫上普拉提和器械普拉提的分类管理
- 实现数据库结构迁移脚本,添加新字段以支持普拉提类型和器械名称
- 更新数据库升级总结文档,详细说明数据库结构变更和数据导入步骤
- 创建训练会话相关表,支持每日训练实例功能
- 引入训练会话管理模块,整合训练计划与实际训练会话的关系
2025-08-15 15:34:11 +08:00

136 lines
4.4 KiB
Markdown

# 普拉提数据库设计升级总结
## 概述
根据完整的普拉提训练资料,对现有的训练分类和动作数据库设计进行了全面升级,以更好地支持垫上普拉提和器械普拉提的管理。
## 数据库结构变更
### 1. 分类表 (t_exercise_categories) 新增字段
| 字段名 | 类型 | 说明 |
|--------|------|------|
| `pilates_type` | ENUM('mat_pilates', 'equipment_pilates') | 普拉提类型:垫上普拉提或器械普拉提 |
| `equipment_name` | VARCHAR(255) | 器械名称(仅器械普拉提需要) |
### 2. 动作表 (t_exercises) 新增字段
| 字段名 | 类型 | 说明 |
|--------|------|------|
| `target_muscle_groups` | TEXT | 主要锻炼肌肉群 |
| `equipment_name` | VARCHAR(255) | 器械名称(器械普拉提专用) |
| `beginner_reps` | INTEGER | 入门级别建议练习次数 |
| `beginner_sets` | INTEGER | 入门级别建议组数 |
| `breathing_cycles` | INTEGER | 呼吸循环次数(替代普通次数) |
| `hold_duration` | INTEGER | 保持时间(秒) |
| `special_instructions` | VARCHAR(255) | 特殊说明(如每侧、前后各等) |
## 数据分类架构
### 垫上普拉提 (Mat Pilates)
- **分类**: 垫上普拉提
- **动作数量**: 10个经典动作
- **特点**: 无需器械,专注基础动作和呼吸控制
### 器械普拉提 (Equipment Pilates)
#### 1. 核心床 (Reformer)
- **动作数量**: 6个
- **主要功能**: 脚部练习、核心强化、全身协调
#### 2. 凯迪拉克 (Cadillac)
- **动作数量**: 4个
- **主要功能**: 弹簧阻力训练、上下肢力量、脊柱控制
#### 3. 普拉提椅 (Chair)
- **动作数量**: 5个
- **主要功能**: 坐姿训练、平衡挑战、功能性动作
#### 4. 普拉提桶 (Barrel)
- **动作数量**: 5个
- **主要功能**: 脊柱伸展、侧向柔韧性、平衡训练
## 数据导入内容
### 完整动作列表 (共30个动作)
#### 垫上普拉提动作
1. 百次拍打 - 核心肌群、呼吸肌群、肩部稳定性
2. 卷起 - 核心肌群、脊柱灵活性、腘绳肌柔韧性
3. 单腿画圈 - 核心稳定性、髋关节灵活性
4. 滚球 - 核心肌群、脊柱柔韧性、平衡感
5. 单腿伸展 - 核心肌群、髋屈肌、股四头肌
6. 双腿伸展 - 核心肌群、髋屈肌、股四头肌、肩部稳定性
7. 脊柱伸展 - 脊柱柔韧性、腘绳肌伸展、核心控制
8. 锯式 - 腹斜肌、背部伸肌、脊柱旋转灵活性
9. 天鹅式 - 背部伸肌、臀肌、腘绳肌
10. 肩桥 - 臀肌、腘绳肌、下背部、脊柱灵活性
#### 器械普拉提动作 (20个)
涵盖核心床、凯迪拉克、普拉提椅、普拉提桶四种器械的专业动作
## 数据特点
### 精准的训练参数
- **次数建议**: 针对入门级别的具体练习次数
- **组数设置**: 部分动作包含多组训练
- **呼吸循环**: 特殊动作使用呼吸循环替代次数
- **保持时间**: 静态动作的保持时长
- **特殊说明**: 详细的练习要求和注意事项
### 肌肉群定位
每个动作都明确标注主要锻炼的肌肉群,便于:
- 训练计划制定
- 肌肉群平衡分析
- 个性化推荐算法
## 文件清单
1. **pilates-database-migration.sql** - 数据库结构迁移脚本
2. **pilates-data-import.sql** - 完整数据导入脚本
3. **pilates-database-upgrade-summary.md** - 本总结文档
## 使用说明
### 1. 数据库升级步骤
```sql
-- 1. 执行结构迁移
source docs/pilates-database-migration.sql;
-- 2. 导入数据
source docs/pilates-data-import.sql;
```
### 2. 验证导入结果
```sql
-- 查看分类统计
SELECT
ec.name as category_name,
ec.pilates_type,
ec.equipment_name,
COUNT(e.key) as exercise_count
FROM t_exercise_categories ec
LEFT JOIN t_exercises e ON ec.key = e.category_key
GROUP BY ec.key, ec.name, ec.pilates_type, ec.equipment_name
ORDER BY ec.sort_order;
```
## 技术改进
### 1. 模型层更新
- 更新了 `ExerciseCategory``Exercise` 模型
- 添加新字段的 TypeScript 类型定义
- 保持向后兼容性
### 2. 服务层增强
- 更新 `ExercisesService` 以支持新字段
- 添加普拉提类型和器械名称的辅助方法
- 完善数据导入功能
### 3. DTO接口扩展
- 扩展 `ExerciseDto``ExerciseCategoryDto` 接口
- 添加训练参数相关字段
- 支持完整的普拉提训练信息
这次升级使数据库能够完整支持专业的普拉提训练管理,为后续的训练计划制定、进度跟踪和个性化推荐提供了坚实的数据基础。