Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
# 训练表结构设计说明
## 问题描述
发现数据库表命名不一致的问题:
- 代码中引用了 `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. **数据完整性**:包含必要的约束和索引