198 lines
9.2 KiB
Markdown
198 lines
9.2 KiB
Markdown
# 心理健康测评系统设计说明
|
|
|
|
## 设计目标
|
|
|
|
设计一个简单实用的心理健康测评系统,由班主任为班级学生进行心理健康状况评估,并记录重点关注的学生,为学校心理健康管理提供有效支持。
|
|
|
|
## 数据表设计
|
|
|
|
### 1. 心理健康测评表 (`xljk_evaluation`)
|
|
|
|
**主要功能**: 管理班级心理健康测评的基本信息
|
|
|
|
**字段说明**:
|
|
|
|
- **标准字段**: 按要求包含 `id`、`tenant_id`、`create_by`、`create_time`、`update_by`、`update_time`、`deleted`
|
|
- **业务字段**:
|
|
- `evaluation_name`: 测评名称
|
|
- `major_id`: 专业ID
|
|
- `major_name`: 专业名称
|
|
- `class_id`: 班级ID
|
|
- `class_name`: 班级名称
|
|
- `semester`: 学期(如2024上学期)
|
|
- `status`: 状态(0-草稿,1-已发布,2-已完成)
|
|
- `create_name`: 创建者姓名(班主任姓名)
|
|
- `remark`: 备注
|
|
|
|
### 2. 心理健康测评明细表 (`xljk_evaluation_detail`)
|
|
|
|
**主要功能**: 记录每个学生的心理健康评估结果
|
|
|
|
**字段说明**:
|
|
|
|
- **标准字段**: 按要求包含 `id`、`tenant_id`、`create_by`、`create_time`、`update_by`、`update_time`、`deleted`
|
|
- **学生信息**:
|
|
- `evaluation_id`: 关联测评表ID
|
|
- `student_id`: 学生ID
|
|
- `student_no`: 学号
|
|
- `student_name`: 学生姓名
|
|
- `gender`: 性别(0-男,1-女,2-未知)
|
|
- `birth_date`: 出生日期
|
|
- `phone`: 联系电话
|
|
- **评估信息**:
|
|
- `mental_status`: 心理状态(1-健康,2-良好,3-重点关注)
|
|
- `score`: 分数(仅重点关注时填写)
|
|
- `remark`: 备注
|
|
|
|
## 核心功能流程
|
|
|
|
### 1. 测评创建
|
|
|
|
- 班主任创建新测评表
|
|
- 选择专业、班级、学年(如2024上学期)
|
|
- 系统自动加载该班级学生信息(专业、班级、学号、姓名、性别、出生日期、联系电话)
|
|
- 初始状态为"草稿"
|
|
|
|
### 2. 测评填写
|
|
|
|
- 班主任为每个学生选择心理状态:健康、良好、重点关注
|
|
- 选择"重点关注"时,需要填写分数
|
|
- 无固定分数标准,重点关注由班主任自行判断
|
|
- 可保存为草稿,随时继续编辑
|
|
|
|
### 3. 测评提交
|
|
|
|
- 班主任确认所有学生评估完成后提交
|
|
- 提交后状态改为"已完成"
|
|
- 提交后保存历史测评记录
|
|
- 无需流转审批
|
|
|
|
### 4. 测评统计
|
|
|
|
- 统计重点关注学生数量和比例
|
|
- 生成重点关注学生名单
|
|
- 支持按学期、专业、班级查看统计数据
|
|
|
|
## 设计特点
|
|
|
|
### 简化原则
|
|
|
|
- 无固定测评周期,由班主任自行发起测评
|
|
- 测评直接提交完成,无需流转审批
|
|
- 重点关注无固定分数标准,由班主任自行判断
|
|
|
|
### 数据关联
|
|
|
|
- 测评明细表通过 `evaluation_id` 关联测评主表
|
|
- 学生信息从学生信息管理模块同步获取
|
|
- 保存历史测评记录,支持趋势分析
|
|
|
|
### 数据完整性
|
|
|
|
- 使用雪花ID作为主键,保证唯一性
|
|
- 外键约束确保测评明细表与测评表的关联
|
|
- 必填字段设置 NOT NULL 约束
|
|
- 合理的索引设计提高查询效率
|
|
|
|
## 角色权限
|
|
|
|
### 班主任
|
|
|
|
- 创建和填写心理健康测评表
|
|
- 查看本班学生的心理测评历史记录
|
|
- 查看本班学生的心理咨询预约情况
|
|
|
|
### 心理健康管理员
|
|
|
|
- 查看所有班级的测评统计数据
|
|
- 查看重点关注学生名单
|
|
- 无权修改测评数据
|
|
|
|
### 心理咨询师
|
|
|
|
- 查看重点关注学生名单
|
|
- 查看学生的测评历史
|
|
- 无权修改测评数据
|
|
|
|
## SQL建表语句
|
|
|
|
```sql
|
|
-- 心理健康测评表
|
|
CREATE TABLE `xljk_evaluation` (
|
|
`id` bigint(20) NOT NULL COMMENT '主键ID',
|
|
`evaluation_name` varchar(100) NOT NULL COMMENT '测评名称',
|
|
`major_id` bigint(20) NOT NULL COMMENT '专业ID',
|
|
`major_name` varchar(100) NOT NULL COMMENT '专业名称',
|
|
`class_id` bigint(20) NOT NULL COMMENT '班级ID',
|
|
`class_name` varchar(100) NOT NULL COMMENT '班级名称',
|
|
`semester` varchar(50) NOT NULL COMMENT '学期(如2024上学期)',
|
|
`status` char(1) NOT NULL DEFAULT '0' COMMENT '状态(0-草稿,1-已发布,2-已完成)',
|
|
`create_by` bigint(20) NOT NULL COMMENT '创建者ID(班主任ID)',
|
|
`create_name` varchar(50) NOT NULL COMMENT '创建者姓名',
|
|
`create_time` datetime NOT NULL COMMENT '创建时间',
|
|
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
|
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
|
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
`tenant_id` varchar(20) DEFAULT NULL COMMENT '租户ID',
|
|
`deleted` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0-存在,1-删除)',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_class_id` (`class_id`),
|
|
KEY `idx_semester` (`semester`),
|
|
KEY `idx_status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='心理健康测评表';
|
|
|
|
-- 心理健康测评明细表
|
|
CREATE TABLE `xljk_evaluation_detail` (
|
|
`id` bigint(20) NOT NULL COMMENT '主键ID',
|
|
`evaluation_id` bigint(20) NOT NULL COMMENT '测评表ID',
|
|
`student_id` bigint(20) NOT NULL COMMENT '学生ID',
|
|
`student_no` varchar(50) NOT NULL COMMENT '学号',
|
|
`student_name` varchar(50) NOT NULL COMMENT '学生姓名',
|
|
`gender` char(1) DEFAULT NULL COMMENT '性别(0-男,1-女,2-未知)',
|
|
`birth_date` date DEFAULT NULL COMMENT '出生日期',
|
|
`phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
|
|
`mental_status` char(1) NOT NULL COMMENT '心理状态(1-健康,2-良好,3-重点关注)',
|
|
`score` int(11) DEFAULT NULL COMMENT '分数(仅重点关注时填写)',
|
|
`create_by` bigint(20) NOT NULL COMMENT '创建者',
|
|
`create_time` datetime NOT NULL COMMENT '创建时间',
|
|
`update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
|
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
|
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
`tenant_id` varchar(20) DEFAULT NULL COMMENT '租户ID',
|
|
`deleted` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0-存在,1-删除)',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_evaluation_id` (`evaluation_id`),
|
|
KEY `idx_student_id` (`student_id`),
|
|
KEY `idx_mental_status` (`mental_status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='心理健康测评明细表';
|
|
```
|
|
|
|
## 示例数据
|
|
|
|
```sql
|
|
-- 插入测评表示例数据
|
|
INSERT INTO `xljk_evaluation` VALUES (1, '2024上学期计算机2301班心理健康测评', 101, '计算机应用技术', 1001, '计算机2301班', '2024上学期', '2', 2001, '张班主任', '2025-01-10 09:00:00', 2001, '2025-01-10 10:30:00', '期末测评', '000000', '0');
|
|
INSERT INTO `xljk_evaluation` VALUES (2, '2024上学期电子2302班心理健康测评', 102, '电子商务', 1002, '电子2302班', '2024上学期', '0', 2002, '李班主任', '2025-01-11 14:00:00', 2002, '2025-01-11 14:30:00', '期末测评草稿', '000000', '0');
|
|
INSERT INTO `xljk_evaluation` VALUES (3, '2023下学期计算机2301班心理健康测评', 101, '计算机应用技术', 1001, '计算机2301班', '2023下学期', '2', 2001, '张班主任', '2024-12-15 09:00:00', 2001, '2024-12-15 11:00:00', '期末测评', '000000', '0');
|
|
|
|
-- 插入测评明细示例数据
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (101, 1, 10001, '2024001', '张三', '0', '2005-06-15', '13800138001', '1', NULL, 2001, '2025-01-10 09:10:00', 2001, '2025-01-10 09:10:00', NULL, '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (102, 1, 10002, '2024002', '李四', '0', '2005-03-22', '13800138002', '2', NULL, 2001, '2025-01-10 09:15:00', 2001, '2025-01-10 09:15:00', NULL, '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (103, 1, 10003, '2024003', '王五', '0', '2005-09-10', '13800138003', '3', 75, 2001, '2025-01-10 09:20:00', 2001, '2025-01-10 09:20:00', '近期学习压力大,需要关注', '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (104, 1, 10004, '2024004', '赵六', '1', '2005-11-05', '13800138004', '1', NULL, 2001, '2025-01-10 09:25:00', 2001, '2025-01-10 09:25:00', NULL, '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (105, 1, 10005, '2024005', '钱七', '1', '2005-07-20', '13800138005', '3', 80, 2001, '2025-01-10 09:30:00', 2001, '2025-01-10 09:30:00', '家庭情况特殊,需要关注', '000000', '0');
|
|
|
|
-- 插入第三个测评的明细示例数据
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (201, 3, 10001, '2024001', '张三', '0', '2005-06-15', '13800138001', '1', NULL, 2001, '2024-12-15 09:10:00', 2001, '2024-12-15 09:10:00', NULL, '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (202, 3, 10002, '2024002', '李四', '0', '2005-03-22', '13800138002', '1', NULL, 2001, '2024-12-15 09:15:00', 2001, '2024-12-15 09:15:00', NULL, '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (203, 3, 10003, '2024003', '王五', '0', '2005-09-10', '13800138003', '3', 70, 2001, '2024-12-15 09:20:00', 2001, '2024-12-15 09:20:00', '期末考试压力大', '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (204, 3, 10004, '2024004', '赵六', '1', '2005-11-05', '13800138004', '2', NULL, 2001, '2024-12-15 09:25:00', 2001, '2024-12-15 09:25:00', NULL, '000000', '0');
|
|
INSERT INTO `xljk_evaluation_detail` VALUES (205, 3, 10005, '2024005', '钱七', '1', '2005-07-20', '13800138005', '3', 85, 2001, '2024-12-15 09:30:00', 2001, '2024-12-15 09:30:00', '家庭情况特殊,需要关注', '000000', '0');
|
|
```
|
|
|
|
## 使用说明
|
|
|
|
1. 执行上述SQL脚本创建数据表和示例数据
|
|
2. 系统会从学生信息管理模块同步学生基础信息
|
|
3. 班主任可以根据需要随时发起心理健康测评
|
|
4. 测评完成后,可以查看重点关注学生名单和统计数据 |