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

4.4 KiB

普拉提数据库设计升级总结

概述

根据完整的普拉提训练资料,对现有的训练分类和动作数据库设计进行了全面升级,以更好地支持垫上普拉提和器械普拉提的管理。

数据库结构变更

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. 数据库升级步骤

-- 1. 执行结构迁移
source docs/pilates-database-migration.sql;

-- 2. 导入数据
source docs/pilates-data-import.sql;

2. 验证导入结果

-- 查看分类统计
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. 模型层更新

  • 更新了 ExerciseCategoryExercise 模型
  • 添加新字段的 TypeScript 类型定义
  • 保持向后兼容性

2. 服务层增强

  • 更新 ExercisesService 以支持新字段
  • 添加普拉提类型和器械名称的辅助方法
  • 完善数据导入功能

3. DTO接口扩展

  • 扩展 ExerciseDtoExerciseCategoryDto 接口
  • 添加训练参数相关字段
  • 支持完整的普拉提训练信息

这次升级使数据库能够完整支持专业的普拉提训练管理,为后续的训练计划制定、进度跟踪和个性化推荐提供了坚实的数据基础。