教师(学生)与用户关系说明
系统关系特点
- 教师和学生数据表与用户表没有必然的直接关系
- 可由具有教务权限的用户创建、修改、删除教师和学生信息(若未绑定用户)
- 支持批量添加教师和学生信息
角色权限说明
角色 | 用户管理权限 | 教师/学生管理权限 |
---|---|---|
管理员 | 完全权限 | 有限权限 |
教务 | 无权限 | 完全权限 |
数据库设计原则
关键表结构
cs_user
:用户基本信息表cs_teacher
:教师信息表cs_student
:学生信息表
外键关联特点
user_uuid
外键默认允许为空- 空值表示教师或学生尚未在系统中注册
初始登录机制
登录凭证
{
"user": "学号或工号",
"pass": "stu+学号 / te+工号"
}
首次登录流程
- 使用初始账号密码登录
- 系统识别为新用户
- 引导进入信息完善页面(
/api/v1/auth/registered
)
注册信息结构
export type Request = {
type: boolean; // 系统自动填入的类型
name: string; // 系统自动填入的学号
email: string; // 用户填写的邮箱
new_password: string; // 用户设置的新密码
phone: string; // 用户填写的手机号码
user: string; // 用户填写的用户名
}
登录方式转变
- 初始:仅使用学号/工号登录
- 注册后:可使用以下方式登录
- 学号/工号
- 用户名
- 手机号
- 邮箱
用户绑定机制
自动绑定流程
- 用户完成信息注册
- 系统自动获取新建
cs_user
的user_uuid
- 将
user_uuid
存入对应的cs_teacher
或cs_student
表
特点
- 无需管理员或教务手动干预
- 全程由系统程序自动执行
后续管理
错误处理
- 管理员可修改用户信息
- 教务无权操作用户账号
- 最终用户管理权限仍归管理员所有
安全性考虑
- 初始密码为临时密码
- 必须在首次登录时更改
- 用户信息修改受严格权限控制
流程图
flowchart TD
A[教务创建教师/学生档案] --> B{是否已绑定用户}
B -->|未绑定| C[生成初始登录凭证]
C --> D[初始账号: 学号/工号\n初始密码: stu+学号/te+工号]
D --> E[用户首次登录]
E --> F[系统识别为新用户]
F --> G[引导进入信息完善页面]
G --> H[填写注册信息]
H --> I[邮箱]
H --> J[新密码]
H --> K[手机号]
H --> L[用户名]
I & J & K & L --> M[提交注册信息]
M --> N[系统自动绑定用户]
N --> O[更新 user_uuid 到教师/学生表]
O --> P{可用登录方式}
P -->|方式1| Q[学号/工号]
P -->|方式2| R[用户名]
P -->|方式3| S[手机号]
P -->|方式4| T[邮箱]
B -->|已绑定| U[使用现有用户账号]
subgraph 管理员权限
W[可修改用户信息]
X[无法直接操作教师/学生]
end
style A fill:#f9f,stroke:#333,stroke-width:2px
style F fill:#bbf,stroke:#333,stroke-width:2px
style N fill:#bfb,stroke:#333,stroke-width:2px
style P fill:#ff9,stroke:#333,stroke-width:2px