博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业,有18年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
本研究旨在构建一套基于SpringBoot框架的班级量化考核系统,以解决传统手工评估方式在数据准确性、实时性与可视化分析方面的不足。通过引入现代Web技术与微服务架构,本系统能够实现学生信息管理、课程安排管理、成绩录入与自动计算以及多维度数据可视化等功能,从而为教师和管理者提供一站式的数据支持平台。研究的首要目标是设计并实现一套高可扩展、高可靠性的后端服务体系,利用SpringBoot的自动配置特性与Spring Cloud生态,保证系统在大规模并发访问下仍能保持低延迟与高吞吐。其次,本研究将聚焦于数据安全与隐私保护,采用OAuth2.0认证机制与JWT令牌技术,对学生成绩与个人信息进行加密存储和访问控制,以符合教育信息化的合规要求。第三个目标是实现多维度评估模型,基于统计学方法和机器学习算法,对学生的学习行为、课堂参与度、作业完成情况等指标进行综合评分,并通过图表与仪表盘实时展示结果,为教学决策提供依据。研究还将开展系统性能评估与用户体验调研,采用负载测试工具对系统的响应时间、并发处理能力进行量化分析,并通过问卷与访谈收集教师与学生的使用反馈,进一步优化界面交互与功能模块。最终,本研究预期能够提供一套可复制、可推广的班级量化考核解决方案,为高校教学管理信息化提供技术支撑,并为后续在其他教育场景中的应用奠定基础。
二、研究意义
本研究所提出的基于SpringBoot的班级量化考核系统,具有重要的理论与实践意义。首先,在信息化教育快速发展的背景下,传统的手工考核方式已难以满足大规模数据处理与实时反馈的需求,而本系统通过采用微服务架构与RESTful API设计,实现了对学生学习数据的高效采集、存储与分析,为教育管理提供了可视化、可追溯的数据支持。其次,系统在安全性设计上引入OAuth2.0授权框架与JWT令牌机制,确保学生个人信息与成绩数据在传输与存储过程中的机密性与完整性,从而符合教育信息化的合规要求,并为后续跨机构数据共享奠定了技术基础。再次,系统内置多维度评估模型,结合统计学方法与机器学习算法,对课堂参与度、作业完成率、测验成绩等指标进行综合权重计算,为教师提供精准的学生画像与教学改进建议,提升教学质量与个性化教育水平。再者,本研究通过负载测试与性能评估验证了系统在高并发访问下的稳定性与可扩展性,为大规模校园网络环境中的部署提供了可靠依据。最后,系统的模块化设计与开放接口为后续功能扩展(如在线实验、项目管理、学习资源推荐等)提供了灵活的技术平台,具有较高的推广价值。综上所述,本研究不仅在技术层面解决了班级考核数据管理与分析的痛点,而且在教育信息化实践中具有重要的应用前景与社会价值。
三、国内外研究现状
国内外在教育评估与学习分析领域的研究已形成若干主要方向,涵盖数据驱动的学生表现预测、教学质量监控、学习资源推荐以及信息安全与隐私保护等方面。早期国外研究多聚焦于学习分析平台的构建,通过对在线课程交互日志、测验成绩与学习路径进行挖掘,提出了多维度学生画像模型,并在MOOC环境中验证了其对学习成效的预测能力;国内学者则在高校教学管理系统中引入大数据技术,构建了基于云平台的教学质量评估框架,并通过可视化仪表盘实现了教师与管理者对课程质量的实时监控。近年来,随着微服务架构与容器化技术的成熟,国外研究逐步将学习分析系统拆分为独立服务模块,以提升系统弹性与可维护性;国内亦出现了基于SpringBoot、Spring Cloud等开源框架的教学管理微服务实例,这些系统在数据采集、权限控制与业务逻辑层面实现了高度解耦,显著降低了后期功能扩展的技术门槛。关于安全与隐私保护,国外学术界已提出基于差分隐私与联邦学习的学生数据保护方案,并在实验平台上展示了在不泄露个人信息的前提下仍能保持预测准确性的可行性;国内研究者则侧重于构建基于OAuth2.0与JWT令牌的权限体系,结合数据库加密技术,确保学生成绩与个人信息在传输与存储过程中的机密性。与此同时,学习分析领域的算法研究也在不断深入,从传统的逻辑回归、决策树到深度学习模型、图神经网络等新兴方法被应用于学生行为预测与课程推荐任务。综上所述,国内外在教育评估与学习分析的研究已形成了以数据驱动为核心、技术架构多样化、关注安全隐私的整体发展趋势,为后续基于SpringBoot的班级量化考核系统提供了丰富的理论基础与技术借鉴。
四、预期达到目标及解决的关键问题
预期目标首先是构建一套基于SpringBoot框架的班级量化考核系统,能够实现学生信息管理、课程安排管理、成绩录入与自动计算以及多维度数据可视化等核心功能,并通过微服务架构实现系统的高可扩展性与高可靠性。其次,本研究旨在将学习行为数据与教学质量指标进行深度融合,利用统计学方法与机器学习算法对学生学习成效进行精准预测,为教师提供个性化教学建议。再次,系统将采用OAuth2.0认证机制与JWT令牌技术,对学生个人信息与成绩数据进行加密存储和访问控制,以满足教育信息化的合规要求并保障数据安全。最后,本研究计划通过负载测试与性能评估验证系统在高并发访问下的稳定性,并通过问卷与访谈收集教师与学生的使用反馈,进一步优化用户体验与功能模块。
关键问题主要集中在四个方面。第一,数据集成与清洗是实现量化考核的前提,如何从学校信息系统、学习管理平台以及在线测验工具中获取异构数据,并保证数据质量与一致性,是系统设计中的核心挑战。第二,系统的可扩展性与高并发性能需要通过微服务拆分、容器化部署与自动伸缩机制来实现,如何在保持业务逻辑清晰的同时满足大规模并发访问的需求,需要深入研究。第三,数据安全与隐私保护是教育信息化不可回避的问题,如何在保证数据可用性的前提下,实现差分隐私或联邦学习等技术,以防止个人信息泄露,是本研究必须解决的重要问题。第四,算法公平性与解释性也是关键议题,如何在使用机器学习模型进行学生表现预测时避免偏见,并提供可解释的决策依据,以提升教师与学生对系统的信任度,需要在算法设计与评估中予以充分考虑。
综上所述,本研究的预期目标是构建一套功能完善、性能可靠、数据安全且易于扩展的班级量化考核系统;关键问题则聚焦于数据集成与清洗、高并发性能保障、隐私保护与算法公平性。通过对这些问题的系统研究与技术攻关,预期能够为高校教学管理信息化提供可复制、可推广的技术方案,并为后续在更广阔教育场景中的应用奠定坚实基础。
五、研究内容
本研究将围绕基于SpringBoot的班级量化考核系统展开,整体研究内容可划分为四个主要模块:需求分析与系统架构设计、数据采集与预处理、核心算法与功能实现以及系统评估与优化。首先,在需求分析阶段,通过访谈教师、学生及教务管理人员,梳理出系统所需支持的业务流程,包括学生信息录入、课程安排管理、成绩录入与自动计算、多维度考核指标配置以及结果可视化展示等功能;随后依据需求制定微服务架构图,采用SpringBoot为核心框架,结合Spring Cloud、Docker容器化技术与Kubernetes编排,实现服务解耦、水平扩展与弹性伸缩。其次,在数据采集与预处理阶段,系统将从学校信息系统、学习管理平台以及在线测验工具等多源渠道获取原始数据,通过ETL流程完成数据清洗、格式化与标准化,并利用Kafka消息队列实现实时数据流的同步;在此基础上,构建统一的数据仓库,用于后续的统计分析与机器学习模型训练。第三,在核心算法与功能实现阶段,系统将实现多维度量化考核模型,采用加权平均、层次分析法以及基于梯度提升树或神经网络的预测模型,对学生课堂参与度、作业完成率、测验成绩等指标进行综合评分;同时提供可视化仪表盘,利用D3.js或ECharts展示各类统计图表;在安全与隐私保护方面,系统将实现OAuth2.0授权与JWT令牌机制,对敏感字段采用AES-256加密,并结合差分隐私技术在数据导出时加入噪声,确保个人信息不被泄露。最后,在系统评估与优化阶段,将通过负载测试工具JMeter对API响应时间、吞吐量进行量化评估;利用A/B测试与用户体验问卷收集教师与学生的反馈,针对性能瓶颈与界面交互进行迭代改进;同时,针对算法公平性进行统计检验,确保模型在不同学生群体间的预测误差保持可接受范围。通过上述四个模块的系统化研究,本项目将构建一套功能完善、性能可靠、数据安全且易于扩展的班级量化考核系统,为高校教学管理信息化提供可复制、可推广的技术方案。
六、需求分析
用户需求方面,教师需要能够快速、准确地录入学生成绩,并在系统中查看各类考核指标的统计结果,以便及时调整教学策略;他们还期望系统能够提供多维度的数据可视化展示,使得成绩分布、课堂参与度以及作业完成率等信息一目了然,从而支持基于数据的教学决策;学生则希望能够在安全、便捷的环境中查看自己的学习进度与成绩,并通过系统反馈了解自身优势与不足,以便自我调整学习计划;学生家长亦关注到能够获取孩子在校表现的透明化报告,以便更好地支持孩子的学习;教务管理人员需要系统能够统一管理学生信息、课程安排以及教师排课,确保数据的一致性与完整性,并通过报表功能进行学期总结与质量评估;此外,所有用户都关注系统的安全性与隐私保护,要求对个人信息和成绩数据进行加密存储和访问控制,以符合教育信息化的合规标准;最后,用户期望系统能够兼容多种终端设备,包括PC、平板和手机,并支持多语言界面,以满足不同用户群体的使用习惯。
功能需求方面,系统必须实现用户身份认证与权限管理模块,采用OAuth2.0授权与JWT令牌机制,对不同角色(教师、学生、家长、管理员)进行细粒度访问控制;数据管理模块需要支持学生基本信息、课程信息以及成绩数据的增删改查,并通过ETL流程实现多源异构数据的实时同步与清洗;考核计算模块应根据预设的权重与评估模型,对学生课堂参与度、作业完成率、测验成绩等指标进行自动化评分,并支持自定义指标配置;分析与可视化模块需提供交互式仪表盘,展示分布图、趋势线以及对比分析结果,并支持数据导出为Excel或PDF格式;报表生成模块应能够按学期、班级或教师生成综合评估报告,支持多维度筛选与分页展示;安全与隐私保护模块必须实现数据加密存储、差分隐私技术以及日志审计功能,以确保个人信息不被泄露并满足监管要求;性能与扩展性模块应采用微服务架构与容器化部署,支持水平扩展、负载均衡以及弹性伸缩,以满足高并发访问的需求;最后,系统还需提供移动端适配接口,支持RESTful API调用,以便第三方应用或学习管理平台进行集成。
七、可行性分析
经济可行性方面,本系统的开发成本主要集中在软件工程师、前端设计师以及数据库管理员的人工费用,依据国内软件项目平均人均月薪约为两万元人民币,预计整个项目周期为六个月,整体人力成本约为七十二万元人民币;除此之外,还需投入服务器租赁或云主机费用,每月约为一千五百元人民币,全年成本约为一万八千元;系统上线后,可通过减少教师手工录入与报表生成的时间,预计每学期可节省教师人力成本约两万元,从而在三年内实现成本回收;若学校采用多校区共享部署模式,则进一步降低单个校区的投入,提升经济效益。社会可行性方面,系统以数据驱动的方式提升教学质量与管理效率,符合教育信息化发展战略,能够满足政府对教育现代化的政策要求;同时,通过实现学生成绩与学习行为的可视化分析,可帮助教师及时发现学习困难学生并进行个性化辅导,从而提升整体教学水平;在隐私保护方面,本系统采用OAuth2.0与JWT令牌进行身份认证,并对敏感数据使用AES-256加密,符合《个人信息保护法》的合规要求,能够获得家长与学生的信任;此外,系统支持多语言界面与移动端访问,可满足不同用户群体的使用习惯,进一步提升社会接受度。技术可行性方面,SpringBoot框架在国内已有广泛应用,其生态完善且社区活跃,可快速构建RESTful API与微服务;Spring Cloud、Docker与Kubernetes等技术已成熟,能够实现系统的容器化部署与弹性伸缩;数据库层面,可采用MySQL或PostgreSQL进行关系型存储,并通过Kafka实现实时数据流处理,技术选型均符合当前主流技术栈;系统需与学校现有的学生信息管理系统(SIS)及学习管理平台(LMS)进行对接,可通过标准化接口或中间件完成数据同步;在性能方面,采用分布式缓存Redis与数据库读写分离,可满足高并发访问需求;综上所述,从经济、社会与技术三方面分析,本研究的班级量化考核系统具备可行性,并能够为高校教学管理提供长期价值。
八、功能分析
系统功能模块依据需求分析结果可划分为八大核心模块,逻辑结构严谨、功能完整。第一模块为用户身份与权限管理,包含用户注册、登录、角色分配以及基于OAuth2.0的授权认证;该模块通过JWT令牌实现无状态访问控制,并支持多因素身份验证以增强安全性。第二模块为学生信息管理,提供学生基本资料录入、查询、修改与删除功能,并支持批量导入与导出;同时该模块维护学生学籍状态、班级归属及个人学习档案,保证数据一致性。第三模块为课程与排课管理,涵盖课程信息维护、教师分配、教学时段排布以及教室资源调度;系统支持冲突检测与自动优化,以提高排课效率。第四模块为课堂参与与作业跟踪,记录学生课堂出勤、作业提交状态及在线学习时长;通过与学习管理平台接口同步日志,实现实时数据采集。第五模块为成绩录入与自动计算,支持教师手工录入成绩、批量上传以及自动化评分;系统根据预设权重对课堂参与度、作业完成率、测验成绩等指标进行加权平均,并生成学生总评与等级。第六模块为分析与可视化,提供交互式仪表盘展示分布图、趋势线、对比分析及多维度筛选;用户可自定义报表模板并支持导出为Excel或PDF。第七模块为报告与导出,支持按学期、班级或教师生成综合评估报告,并提供多种格式导出;系统自动生成成绩单与学习进度报告,方便教师与家长查看。第八模块为系统运维与安全保障,涵盖日志审计、差分隐私保护、数据加密存储以及容器化部署管理;通过Docker Compose或Kubernetes实现弹性伸缩,并提供监控与告警功能。上述八大模块相互协作,形成完整的班级量化考核系统,实现从数据采集到决策支持的闭环流程。
九、数据库设计
===== users =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 用户编号 | 36 | varchar(36) | 主键 | UUID
username | 登录名 | 50 | varchar(50) ||
password_hash | 密码哈希值 | 255 | varchar(255) ||
email | 邮箱地址 | 100 | varchar(100) ||
phone_number| 联系电话|20|varchar(20)||
created_at| 创建时间|19|datetime||
updated_at| 更新时间|19|datetime||
===== roles =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 角色编号 | 36 | varchar(36) | 主键 | UUID
role_name | 角色名称 | 50 | varchar(50) ||
description| 描述|255|varchar(255)||
===== user_roles =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
user_id | 用户编号 | 36 | varchar(36) | 外键 → users.id |
role_id | 角色编号 | 36 | varchar(36) | 外键 → roles.id |
===== students =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 学生编号 | 36 | varchar(36) | 主键 | UUID
user_id| 用户编号|36|varchar(36)|外键 → users.id|
student_number| 学号|20|varchar(20)||
name | 姓名|50|string||
gender | 性别|1|string||
birth_date | 出生日期|10|string||
class_id | 班级编号 | 36 | varchar(36) | 外键 → classes.id |
===== teachers =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 教师编号 | 36 | varchar(36) | 主键| UUID
user_id| 用户编号|36|varchar(36)|外键 → users.id|
teacher_number| 工号|20|varchar(20)||
name | 姓名|50|string||
department | 院系|100|string||
===== classes =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 班级编号 | 36 | varchar(36) | 主键| UUID
class_name| 班级名称|50|string||
grade_level| 年级|2|string||
===== courses =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 课程编号 | 36 | varchar(36) | 主键| UUID
course_code| 课程代码|20|string||
course_name| 课程名称|100|string||
credit_hours| 学分数|3|string||
===== class_courses =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
class_id | 班级编号 | 36 | varchar(36) | 外键 → classes.id|
course_id| 课程编号|36|varchar(36)|外键 → courses.id|
===== enrollments =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
student_id| 学生编号|36|varchar(36)|外键 → students.id|
class_id | 班级编号 | 36 | varchar(36) | 外键 → classes.id|
===== attendance_records =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 考勤记录编号|36|varchar(36)|主键|UUID
student_id| 学生编号|36|varchar(36)|外键 → students.id|
course_id| 课程编号|36|varchar(36)|外键 → courses.id|
attendance_date | 考勤日期 | 10 | string||
status | 出勤状态(出勤、缺席、迟到) |1|string||
===== assignments =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 作业编号|36|varchar(36)|主键|UUID
course_id| 课程编号|36|varchar(36)|外键 → courses.id|
title | 作业标题|100|string||
description | 作业说明|500|string||
due_date | 截止日期 |10|string||
max_score | 最大分数 |5|string||
===== assignment_submissions =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 提交编号|36|varchar(36)|主键|UUID
assignment_id| 作业编号|36|varchar(36)|外键 → assignments.id|
student_id| 学生编号|36|varchar(36)|外键 → students.id|
submitted_at | 提交时间 |19|string||
score | 得分 |5|string||
feedback | 教师反馈 |500|string||
===== exam_scores =====
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
id | 考试成绩编号|36|varchar(36)|主键|UUID
course_id| 课程编号|36|varchar(36)|外键 → courses.id|
student_id| 学生编号|36|varchar(36)|外键 → students.id|
exam_date | 考试日期 |10|string||
score | 分数 |5|string||
grade | 等级(A,B,C等) |1|string||
十、建表语句
CREATE DATABASE IF NOT EXISTS class_assessment CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE class_assessment;
-- 用户表
CREATE TABLE users (
id VARCHAR(36) NOT NULL,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
email VARCHAR(100),
phone_number VARCHAR(20),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 角色表
CREATE TABLE roles (
id VARCHAR(36) NOT NULL,
role_name VARCHAR(50) NOT NULL UNIQUE,
description VARCHAR(255),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 用户角色关联表
CREATE TABLE user_roles (
user_id VARCHAR(36) NOT NULL,
role_id VARCHAR(36) NOT NULL,
PRIMARY KEY (user_id, role_id),
CONSTRAINT fk_user_roles_user FOREIGN KEY (user_id)
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_user_roles_role FOREIGN KEY (role_id)
REFERENCES roles(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 学生表
CREATE TABLE students (
id VARCHAR(36) NOT NULL,
user_id VARCHAR(36) NOT NULL,
student_number VARCHAR(20) UNIQUE,
name VARCHAR(50) NOT NULL,
gender CHAR(1),
birth_date DATE,
class_id VARCHAR(36),
PRIMARY KEY (id),
CONSTRAINT fk_students_user FOREIGN KEY (user_id)
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_students_class FOREIGN KEY (class_id)
REFERENCES classes(id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 教师表
CREATE TABLE teachers (
id VARCHAR(36) NOT NULL,
user_id VARCHAR(36) NOT NULL,
teacher_number VARCHAR(20) UNIQUE,
name VARCHAR(50) NOT NULL,
department VARCHAR(100),
PRIMARY KEY (id),
CONSTRAINT fk_teachers_user FOREIGN KEY (user_id)
REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 班级表
CREATE TABLE classes (
id VARCHAR(36) NOT NULL,
class_name VARCHAR(50) NOT NULL,
grade_level CHAR(2),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 课程表
CREATE TABLE courses (
id VARCHAR(36) NOT NULL,
course_code VARCHAR(20) UNIQUE,
course_name VARCHAR(100) NOT NULL,
credit_hours DECIMAL(3,1),
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 班级课程关联表
CREATE TABLE class_courses (
class_id VARCHAR(36) NOT NULL,
course_id VARCHAR(36) NOT NULL,
PRIMARY KEY (class_id, course_id),
CONSTRAINT fk_class_courses_class FOREIGN KEY (class_id)
REFERENCES classes(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_class_courses_course FOREIGN KEY (course_id)
REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 学生选课表(可选)
CREATE TABLE enrollments (
student_id VARCHAR(36) NOT NULL,
class_id VARCHAR(36) NOT NULL,
PRIMARY KEY (student_id, class_id),
CONSTRAINT fk_enrollments_student FOREIGN KEY (student_id)
REFERENCES students(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_enrollments_class FOREIGN KEY (class_id)
REFERENCES classes(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 考勤记录表
CREATE TABLE attendance_records (
id VARCHAR(36) NOT NULL,
student_id VARCHAR(36) NOT NULL,
course_id VARCHAR(36) NOT NULL,
attendance_date DATE NOT NULL,
status CHAR(1) NOT NULL, -- 0:缺席 1:出勤 2:迟到
PRIMARY KEY (id),
CONSTRAINT fk_attendance_student FOREIGN KEY (student_id)
REFERENCES students(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_attendance_course FOREIGN KEY (course_id)
REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX idx_attendance_date (attendance_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 作业表
CREATE TABLE assignments (
id VARCHAR(36) NOT NULL,
course_id VARCHAR(36) NOT NULL,
title VARCHAR(100) NOT NULL,
description TEXT,
due_date DATE,
max_score DECIMAL(5,2),
PRIMARY KEY (id),
CONSTRAINT fk_assignments_course FOREIGN KEY (course_id)
REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 作业提交表
CREATE TABLE assignment_submissions (
id VARCHAR(36) NOT NULL,
assignment_id VARCHAR(36) NOT NULL,
student_id VARCHAR(36) NOT NULL,
submitted_at DATETIME DEFAULT CURRENT_TIMESTAMP,
score DECIMAL(5,2),
feedback TEXT,
PRIMARY KEY (id),
CONSTRAINT fk_submission_assignment FOREIGN KEY (assignment_id)
REFERENCES assignments(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_submission_student FOREIGN KEY (student_id)
REFERENCES students(id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 考试成绩表
CREATE TABLE exam_scores (
id VARCHAR(36) NOT NULL,
course_id VARCHAR(36) NOT NULL,
student_id VARCHAR(36) NOT NULL,
exam_date DATE NOT NULL,
score DECIMAL(5,2),
grade CHAR(1),
PRIMARY KEY (id),
CONSTRAINT fk_exam_course FOREIGN KEY (course_id)
REFERENCES courses(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_exam_student FOREIGN KEY (student_id)
REFERENCES students(id) ON DELETE CASCADE ON UPDATE CASCADE,
INDEX idx_exam_date (exam_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻