# 普拉提数据库设计升级总结 ## 概述 根据完整的普拉提训练资料,对现有的训练分类和动作数据库设计进行了全面升级,以更好地支持垫上普拉提和器械普拉提的管理。 ## 数据库结构变更 ### 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` 接口 - 添加训练参数相关字段 - 支持完整的普拉提训练信息 这次升级使数据库能够完整支持专业的普拉提训练管理,为后续的训练计划制定、进度跟踪和个性化推荐提供了坚实的数据基础。