9.2 KiB
9.2 KiB
心理健康测评系统设计说明
设计目标
设计一个简单实用的心理健康测评系统,由班主任为班级学生进行心理健康状况评估,并记录重点关注的学生,为学校心理健康管理提供有效支持。
数据表设计
1. 心理健康测评表 (xljk_evaluation)
主要功能: 管理班级心理健康测评的基本信息
字段说明:
- 标准字段: 按要求包含
id、tenant_id、create_by、create_time、update_by、update_time、deleted - 业务字段:
evaluation_name: 测评名称major_id: 专业IDmajor_name: 专业名称class_id: 班级IDclass_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: 关联测评表IDstudent_id: 学生IDstudent_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建表语句
-- 心理健康测评表
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='心理健康测评明细表';
示例数据
-- 插入测评表示例数据
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');
使用说明
- 执行上述SQL脚本创建数据表和示例数据
- 系统会从学生信息管理模块同步学生基础信息
- 班主任可以根据需要随时发起心理健康测评
- 测评完成后,可以查看重点关注学生名单和统计数据