18879852299-202226701057 4 月之前
父节点
当前提交
ec7a1059fb
共有 1 个文件被更改,包括 179 次插入0 次删除
  1. 179 0
      TFPower-prod/schema/schema.md

+ 179 - 0
TFPower-prod/schema/schema.md

@@ -0,0 +1,179 @@
+### 一、SchemaVan式设计
+
+#### 1. 表设计
+
+1.1 **训练计划表 (TrainingPlan)**
+
+- objectId: String (唯一标识符)
+- createdAt: Date (创建时间)
+- user: Pointer (关联用户)
+- goal: String (健身目标)
+- content: String (训练计划详情)
+- tasks: Array<Pointer (关联的子任务)
+
+1.2 **任务表 (Task)**
+
+- objectId: String (唯一标识符)
+- createdAt: Date (创建时间)
+- plan: Pointer (关联训练计划)
+- type: String (任务类型,如“一次性任务”或“周期性任务”)
+- name: String (任务名称)
+- status: String (任务状态,如“未完成”、“已完成”)
+- count: Number (执行次数)
+- duration: Number (持续时间)
+- frequency: String (周期性任务的频率,如“每日”、“每周”、“每月”,可选)
+
+1.3 **任务执行记录表 (TaskExecution)**
+
+- objectId: String (唯一标识符)
+- createdAt: Date (创建时间)
+- task: Pointer (关联任务)
+- execDate: Date (执行日期)
+- status: String (执行状态,如“完成”、“未完成”)
+
+1.4 **用户表 (User)**
+
+- objectId: String (唯一标识符)
+- createdAt: Date (创建时间)
+- username: String (用户名)
+- email: String (用户邮箱)
+- password: String (用户密码)
+
+1.5 **签到记录表 (SignInRecord)**
+
+- objectId: 字符串 (签到记录唯一标识)
+- user: Pointer (关联用户)
+- signInDate: Date (签到日期)
+- createdAt: Date (创建时间)
+
+#### 2. PlantUML 类图表示
+
+以下是使用PlantUML表示的类图:
+
+```plantuml
+@startuml
+class User {
+    +objectId: String
+    +createdAt: Date
+    +username: String
+    +email: String
+    +password: String
+}
+
+class TrainingPlan {
+    +objectId: String
+    +createdAt: Date
+    +user: Pointer
+    +goal: String
+    +content: String
+    +tasks: Array
+}
+
+class Task {
+    +objectId: String
+    +createdAt: Date
+    +plan: Pointer
+    +type: String
+    +name: String
+    +status: String
+    +count: Number
+    +duration: Number
+    +frequency: String
+}
+
+class TaskExecution {
+    +objectId: String
+    +createdAt: Date
+    +task: Pointer
+    +execDate: Date
+    +status: String
+}
+
+class SignInRecord {
+    +objectId: String
+    +user: Pointer
+    +signInDate: Date
+    +createdAt: Date
+}
+
+User "1" -- "0..*" TrainingPlan
+TrainingPlan "1" -- "0..*" Task
+Task "1" -- "0..*" TaskExecution
+User "1" -- "0..*" SignInRecord
+@enduml
+```
+
+### 设计说明
+
+- **用户表 (User)**: 存储用户的基本信息。
+- **训练计划表 (TrainingPlan)**: 每个用户可以有多个训练计划,每个计划可以包含多个子任务。
+- **任务表 (Task)**: 定义了训练计划中的子任务,支持一次性和周期性任务。
+- **任务执行记录表 (TaskExecution)**: 记录每个任务的执行情况,便于追踪任务的完成状态。
+- **签到记录表 (SignInRecord)**: 记录用户的每日签到情况,确保每个用户每天只能签到一次。
+
+### 二、业务逻辑描述
+
+#### 训练计划的完整逻辑
+
+1. **计划生成逻辑**
+   - 用户在APP内输入健身需求(如减脂、增肌等)和体征信息(性别、年龄、体重)。
+   - APP生成训练计划并存储在表中。`TrainingPlan`
+2. **任务生成逻辑**
+   - 根据训练计划内容生成任务列表,存储在表中。`Task`
+3. **任务执行逻辑**
+   - 用户在TodoList页面查看所有计划和子任务。
+   - 用户填写执行情况并提交,记录在表中。`TaskExecution`
+4. **签到逻辑**
+   - 用户每日登录后,系统记录签到时间,存储在表中,确保每日只能打卡一次。`SignInRecord`
+5. **统计分析**
+   - 系统通过连表查询分析用户的计划完成情况和进度,并展示给用户。
+
+### 业务逻辑图例
+
+以下是根据上述业务逻辑描述生成的PlantUML时序图代码示例:
+
+```plantuml
+@startuml
+actor User
+participant App
+participant TrainingPlan
+participant Task
+participant TaskExecution
+participant SignInRecord
+
+User -> App: 输入健身需求和体征信息
+App -> TrainingPlan: 生成训练计划
+TrainingPlan --> App: 返回训练计划
+
+App -> Task: 根据训练计划生成任务列表
+Task --> App: 插入任务数据
+
+User -> App: 查看TodoList页面
+App -> Task: 加载所有计划和子任务
+App --> User: 展示计划和子任务
+
+User -> App: 提交执行情况
+App -> TaskExecution: 记录执行情况
+TaskExecution --> App: 返回执行记录
+
+App -> Task: 判断任务是否完成
+Task --> App: 更新任务状态
+
+User -> App: 签到
+App -> SignInRecord: 记录签到信息
+SignInRecord --> App: 返回签到记录
+
+App -> User: 展示用户计划完成情况和进度
+@enduml
+```
+
+### 说明
+
+- **用户(User)**在APP中输入健身需求和体征信息,APP生成训练计划并返回。
+- APP根据训练计划生成任务列表并插入任务数据。
+- 用户在TodoList页面查看计划和子任务,并提交执行情况。
+- APP记录执行情况,并判断任务是否完成。
+- 用户每日签到,APP记录签到信息。
+- 最后,APP进行统计分析并将结果展示给用户。
+
+通过这个设计,智能健身APP可以有效地管理用户的训练计划、任务执行和签到记录,提供良好的用户体验。