Files
akmon/doc_zhipao/TRAINING_TABLES_DESIGN.md
2026-01-20 08:04:15 +08:00

94 lines
3.1 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.
# 训练表结构设计说明
## 问题描述
发现数据库表命名不一致的问题:
- 代码中引用了 `training_projects``ak_training_projects` 两个表名
- 数据库中只存在 `ak_training_plans`(训练计划)表
- 缺少 `training_projects`(训练项目)表的定义
## 概念区分
### Training Projects训练项目
- **概念**:可复用的训练活动模板
- **用途**:定义标准化的训练内容,如"5公里跑步"、"篮球基础训练"等
- **特点**:模板化、可重复使用、包含评分标准和训练要点
- **表名**`training_projects``ak_training_projects`
### Training Plans训练计划
- **概念**:具体的训练安排
- **用途**:为特定用户制定的个性化训练计划
- **特点**:个人化、时间性、包含具体的开始结束日期
- **表名**`ak_training_plans`
## 解决方案
### 1. 创建缺失的表
创建了 `create_training_projects_tables.sql` 文件,包含:
- `training_projects`Service层使用
- `ak_training_projects` 表(与现有命名约定保持一致)
### 2. 统一表名引用
修复了 `projects-management.uvue` 中的不一致问题:
- 将第7行的 `ak_training_projects` 改为 `training_projects`
- 保持第90行的 `training_projects` 不变
- 确保整个文件使用统一的表名
### 3. 字段设计
基于 `TrainingProject` 类型定义设计了完整的字段结构:
```sql
- id: SERIAL PRIMARY KEY
- name: VARCHAR(128) -
- description: TEXT -
- category: VARCHAR(64) -
- difficulty: INTEGER - (1-5)
- duration: INTEGER - ()
- training_points: TEXT -
- scoring_criteria: TEXT -
- image_url: VARCHAR(512) -
- status: VARCHAR(16) - (active/inactive)
- usage_count: INTEGER - 使
- created_at: TIMESTAMP -
- updated_at: TIMESTAMP -
```
## 数据库部署
### 执行步骤
1. 运行 `create_training_projects_tables.sql` 创建表结构
2. 确认应用代码使用正确的表名
3. 测试功能是否正常工作
### 示例数据
已包含5个示例训练项目
- 5公里跑步
- 俯卧撑训练
- 篮球基础
- 游泳训练
- 瑜伽基础
## 下一步工作
### 1. 代码检查
确认所有引用 `training_projects` 的地方都能正常工作:
-`sportsservice.uts` - 已使用正确表名
-`projects-management.uvue` - 已修复不一致问题
- 📋 其他可能的引用位置需要检查
### 2. 功能测试
- 📋 测试项目列表加载
- 📋 测试项目创建功能
- 📋 测试项目编辑功能
- 📋 测试项目状态切换
### 3. 数据迁移(如需要)
如果现有环境中有相关数据,可能需要数据迁移策略。
## 设计理念
这个设计遵循了以下原则:
1. **概念清晰**:训练项目和训练计划概念分离
2. **代码兼容**支持现有Service层代码
3. **命名一致**:提供两个表名选项以适应不同的命名约定
4. **扩展性**:字段设计支持未来功能扩展
5. **数据完整性**:包含必要的约束和索引