# 心理健康测评系统设计说明 ## 设计目标 设计一个简单实用的心理健康测评系统,由班主任为班级学生进行心理健康状况评估,并记录重点关注的学生,为学校心理健康管理提供有效支持。 ## 数据表设计 ### 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. 测评完成后,可以查看重点关注学生名单和统计数据