1. 项目背景与需求分析
高校实验室管理一直是个让人头疼的问题。记得去年帮母校信息学院升级实验室时,看到管理员还在用Excel表格记录设备借用情况,预约实验室要跑办公室填纸质申请表,设备维修记录堆了半抽屉的便利贴。这种传统管理方式不仅效率低下,还经常出现设备冲突、预约纠纷等问题。
实验室管理系统需要解决四个核心痛点:
- 资源调度混乱:热门设备经常被"占着不用",而急需的同学却排不上队
- 数据孤岛严重:设备信息、使用记录、维修历史分散在不同表格中
- 审批流程冗长:学生要跑多个办公室才能完成一次设备借用
- 统计报表缺失:管理人员难以掌握实验室整体使用情况
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型与架构设计
2.1 为什么选择SpringBoot+Vue组合
这套技术栈是我们团队经过多个教育类项目验证后的选择:
- SpringBoot:快速构建RESTful API,内置Tomcat简化部署,Starter依赖省去大量配置
- Vue.js:响应式前端框架,组件化开发效率高,与Element UI完美搭配
- MySQL:高校IT部门最熟悉的数据库,便于后期维护
- MyBatis:SQL可控性强,适合需要复杂查询的管理系统
技术选型心得:曾尝试过纯Spring MVC+Thymeleaf方案,但前后端耦合太紧,维护成本高。也测试过React+Node.js组合,但高校IT团队Java技术栈更普及。
2.2 系统架构详解
采用经典的三层架构:
code复制前端层(Vue.js)
↑↓ HTTP/HTTPS
业务逻辑层(SpringBoot)
↑↓ JDBC
数据持久层(MyBatis+MySQL)
关键设计决策:
- 前后端完全分离:前端打包成静态资源,后端提供纯API
- JWT鉴权:解决无状态服务的认证问题
- RBAC权限模型:灵活适应高校多角色场景(学生/教师/管理员)
- 预约冲突检测:基于时间窗口的重叠校验算法
3. 数据库设计与优化
3.1 核心表结构实现
实验室表(lab_info)
sql复制CREATE TABLE `lab_info` (
`lab_
