feat: 问题数据迁移到数据库;学员详情页URL导航改造;侧边栏统一
- 问题从文件系统迁移到数据库 problems 表 - 移除 PROBLEMS_DIR 配置和文件读取逻辑 - student.html 完整重写:编辑/添加/删除问题,生成方案进度显示 - 学员详情页支持独立URL访问 (/student/<id>) - 统一侧边栏到 base.html - 更新文档:DEPLOYMENT_SOP, MODELS, STRUCTURE, FRONTEND_ARCH - 部署到生产环境 v1.2.0
This commit is contained in:
+22
-6
@@ -10,6 +10,22 @@
|
||||
|
||||
## 数据表
|
||||
|
||||
### 0. Problem (问题定义)
|
||||
|
||||
系统预定义的15种常见钢琴学习问题。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | Integer | 主键,自增 |
|
||||
| code | String(50) | 问题编号,如 "05_掌关节支撑差" |
|
||||
| name | String(100) | 问题名称,如 "掌关节支撑差" |
|
||||
| category | String(20) | 分类:技术类/认知类/节奏类/习惯类/综合类 |
|
||||
| created_at | DateTime | 创建时间 |
|
||||
|
||||
> ⚠️ 问题数据已从文件系统迁移到数据库。student_problems 表通过 `problem_id` 外键关联到此表。
|
||||
|
||||
---
|
||||
|
||||
### 1. User (用户)
|
||||
|
||||
系统用户,用于登录认证和权限管理。
|
||||
@@ -58,12 +74,13 @@
|
||||
|------|------|------|
|
||||
| id | Integer | 主键,自增 |
|
||||
| student_id | Integer | 外键,关联 Student |
|
||||
| problem_id | String(50) | 问题编号,如 "01_手小" |
|
||||
| problem_name | String(100) | 问题名称,如 "手小" |
|
||||
| problem_id | Integer | 外键,关联 Problem.id |
|
||||
| severity | String(10) | 严重程度:轻微/中等/严重 |
|
||||
| level | String(20) | 级别:启蒙/入门/进阶/熟练/精通 |
|
||||
| created_at | DateTime | 创建时间 |
|
||||
|
||||
> ⚠️ `problem_id` 现为数字外键,关联 `Problem.id`。通过 `student_problem.problem` 关系获取问题名称。
|
||||
|
||||
---
|
||||
|
||||
### 4. Class (班级)
|
||||
@@ -139,8 +156,7 @@
|
||||
├──────────────────┤ │
|
||||
│ id │ │
|
||||
│ student_id ─────┘ │
|
||||
│ problem_id │
|
||||
│ problem_name │
|
||||
│ problem_id │◄─┼──► Problem
|
||||
│ severity │
|
||||
│ level │
|
||||
│ created_at │
|
||||
@@ -173,8 +189,8 @@ print(user.role) # "admin" or "user"
|
||||
|
||||
```python
|
||||
student = Student.query.get(1)
|
||||
for problem in student.problems:
|
||||
print(problem.problem_name, problem.severity, problem.level)
|
||||
for sp in student.problems:
|
||||
print(sp.problem.name, sp.problem.code, sp.severity, sp.level)
|
||||
```
|
||||
|
||||
### 查询班级及其学员
|
||||
|
||||
Reference in New Issue
Block a user