1. 系统架构设计与技术选型
高校学生学业指导管理系统采用典型的三层架构设计,充分结合微信小程序的便捷性和SpringBoot的高效开发特性。整个系统由表现层、业务逻辑层和数据访问层组成,通过RESTful API进行数据交互。
1.1 后端技术栈深度解析
SpringBoot 2.7.x版本是本项目的核心框架选择,主要基于以下技术考量:
- 自动配置机制大幅减少传统Spring项目的XML配置工作量
- 内嵌Tomcat服务器简化部署流程,特别适合高校IT部门有限的技术运维能力
- Starter依赖机制实现功能模块的"即插即用",例如:
- spring-boot-starter-web:Web MVC支持
- spring-boot-starter-data-jpa:数据库访问
- spring-boot-starter-security:安全认证
数据库选用MySQL 5.7而非8.0版本,主要考虑:
- 高校IT环境普遍保守,5.7版本具有更好的兼容性
- 对服务器硬件要求更低,2核4G配置即可流畅运行
- 成熟的社区支持,遇到问题更容易找到解决方案
java复制// 典型的多数据源配置示例(适用于分库场景)
@Configuration
@MapperScan(basePackages = "com.score.mapper", sqlSessionFactoryRef = "scoreSqlSessionFactory")
public class ScoreDataSourceConfig {
@Bean(name = "scoreDataSource")
@ConfigurationProperties(prefix = "spring.datasource.score")
public DataSource scoreDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "scoreSqlSessionFactory")
public SqlSessionFactory scoreSqlSessionFactory(@Qualifier("scoreDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/score/*.xml"));
return bean.getObject();
}
}
1.2 微信小程序端关键技术
小程序端开发需要特别注意以下技术要点:
- 登录认证:与学校统一身份认证系统对接,采用OAuth2.0协议实现安全认证流程
- 性能优化:
- 分包加载策略:将成绩查询、统计分析等不同功能模块拆分为独立分包
- 数据缓存:利用wx.setStorageSync实现本地数据缓存,减少网络请求
- 安全通信:
- 必须使用HTTPS协议
- 敏感数据采用AES加密传输
- 接口签名防篡改机制
javascript复制// 小程序端带安全认证的成绩查询示例
Page({
data: { termList: [], currentTerm: '' },
onLoad() {
this.checkSession()
},
checkSession() {
wx.checkSession({
success: () => this.getTerms(),
fail: () => this.login()
})
},
login() {
wx.login({
success: res => {
wx.request({
url: 'https://api.xxx.edu.cn/auth',
method: 'POST',
data: { code: res.code },
success: authRes => {
wx.setStorageSync('token', authRes.data.token)
this.getTerms()
}
})
}
})
},
getTerms() {
wx.request({
url: 'https://api.xxx.edu.cn/terms',
header: { 'Authorization': wx.getStorageSync('token') },
success: res => this.setData({
termList: res.data,
currentTerm: res.data[0].id
})
})
}
})
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心数据库设计
2.1 实体关系模型
系统采用符合第三范式的数据库设计,主要包含以下核心表:
-
学生信息表(student):
- id (学号,主键)
- name
- gender
- class_id (班级外键)
- major_id (专业外键)
-
课程信息表(course):
- id (课程编号)
- name
- credit (学分)
- course_type (必修/选修)
- department_id (开课院系)
-
成绩记录表(score):
- id (自增主键)
- student_id (学生外键)
- course_id (课程外键)
- regular_score (平时成绩)
- exam_score (考试成绩)
- t
