摘 要
随着职业教育的不断发展,教材管理作为学校日常管理中的重要组成部分,直接影响着教学质量和教学资源的合理分配。传统的教材管理方式存在手工操作繁琐、管理混乱、资源浪费等问题,迫切需要借助信息化手段加以优化和改进。为了提升教材管理的效率和精准度,本文基于SpringBoot框架设计并实现了一种适用于职业学校的教材管理系统。该系统包括管理员、教师和学生等不同角色的功能模块,旨在通过信息化管理提升教材流转和库存管理的效率。
系统主要包括以下核心功能:教材信息管理、教材库存管理、教材申请与归还管理、教材入库与出库管理、教材分类管理、系统用户与权限管理等。管理员可以全面管理教材信息、审核教材申请、监控教材库存、发布通知公告等;教师可进行教材申请、教材归还、查看教材信息及相关评论等;学生则可查询教材信息、提交教材申请、查看教材归还情况及进行收藏和评论。系统采用前后端分离架构,前端使用Vue.js框架,后端基于SpringBoot框架,数据库采用MySQL进行数据存储,确保系统稳定、性能优越。
通过SpringBoot框架的应用,系统实现了高效的模块化设计,具备灵活的权限管理和操作日志记录功能,有效地保障了系统的安全性和透明性。此外,系统的响应速度快、界面友好、操作简便,能够显著提高教材管理的自动化程度,减少人工操作错误,提升管理员、教师和学生的使用体验。
本论文通过对该教材管理系统的设计与实现,解决了传统教材管理方式的种种问题,不仅提高了教材管理的效率,也为职业学校的管理工作提供了现代化、智能化的解决方案,具备较强的实际应用价值和较好的扩展性。
关键词:职业学校;Spring Boot;教材信息;教材管理
Abstract
With the continuous development of vocational education, textbook management, as an important component of daily school management, directly affects the quality of teaching and the rational allocation of teaching resources. The traditional textbook management method has problems such as cumbersome manual operation, chaotic management, and resource waste, and urgently needs to be optimized and improved through information technology. In order to improve the efficiency and accuracy of textbook management, this article designs and implements a textbook management system suitable for vocational schools based on the SpringBoot framework. The system includes functional modules for different roles such as administrators, teachers, and students, aiming to improve the efficiency of textbook circulation and inventory management through information management.
The system mainly includes the following core functions: textbook information management, textbook inventory management, textbook application and return management, textbook inventory management, textbook classification management, system user and permission management, etc. Administrators can comprehensively manage textbook information, review textbook applications, monitor textbook inventory, and issue notices and announcements; Teachers can apply for textbooks, return textbooks, view textbook information and related comments, etc; Students can query textbook information, submit textbook applications, view textbook return status, and collect and comment on them. The system adopts a front-end and back-end separation architecture, with Vue.js framework for the front-end and SpringBoot framework for the back-end. MySQL is used for data storage to ensure system stability and superior performance.
Through the application of the SpringBoot framework, the system has achieved efficient modular design, with flexible permission management and operation logging functions, effectively ensuring the security and transparency of the system. In addition, the system has fast response speed, user-friendly interface, and easy operation, which can significantly improve the automation level of textbook management, reduce manual operation errors, and enhance the user experience of administrators, teachers, and students.
This paper solves various problems of traditional textbook management methods through the design and implementation of the textbook management system. It not only improves the efficiency of textbook management, but also provides a modern and intelligent solution for the management work of vocational schools, with strong practical application value and good scalability.
Keywords:Vocational schools; Spring Boot; Textbook information; Textbook Management
目 录
1 前 言
1.1 研究背景和意义
1.2 国内外研究现状
1.3 论文结构与章节安排
2 关键技术
2.1 Java
2.2 MySQL
2.3 Spring Boot框架
2.4 B/S模式
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 功能需求分析
3.3 系统性能分析
3.4 系统流程分析
4 系统设计
4.1 系统架构设计
4.2 功能模块设计
4.3 数据库设计
4.3.1 E-R图
4.3.2 数据库表结构设计
5 系统实现
5.1 学生用户模块
5.1.1 用户登录界面
5.1.2 用户注册界面
5.1.3 新闻资讯界面
5.1.4 用户反馈界面
5.1.5 教材信息界面
5.2 教师用户模块
5.2.1 教材归还界面
5.2.2 教材申请界面
5.2.3 教材信息界面
5.3 后台管理员模块
5.3.1 系统用户界面
5.3.2 班级信息管理界面
5.3.3 教材分类管理界面
5.3.4 系统管理界面
5.3.5 通知公告管理界面
6 系统测试
6.1 系统测试的目的
6.2 系统测试用例
6.3 系统测试结果
结束语
参考文献
致 谢
1 前 言
随着职业教育的不断发展,职业学校在培养技能型人才、满足社会经济需求方面发挥着越来越重要的作用。在职业学校的教学过程中,教材作为教学资源的核心之一,直接影响到教学质量与效率。然而,传统的教材管理方式通常依赖手工操作和纸质记录,这种管理模式不仅效率低下,而且容易发生错误,造成教材分配不均、库存信息不准确等问题,进一步影响了教学的正常开展。
随着信息技术的迅速发展,越来越多的学校开始尝试引入数字化管理手段,以优化教学资源的管理流程。特别是在教材管理方面,信息化系统能够提供更加高效、准确、便捷的解决方案,有效减少人工操作的失误,提高教材的使用效率和管理透明度。然而,许多学校在教材管理上依然存在系统化不足的问题,缺乏统一的数字化管理平台,导致教材资源的配置、分发、归还等环节存在较大管理漏洞,甚至影响到学校整体教学进度。
在这样的背景下,构建一个基于现代化技术的教材管理系统显得尤为重要。SpringBoot作为一种轻量级的Java开发框架,具有快速开发、高效整合的特点,已成为构建企业级应用的首选框架。结合SpringBoot框架的优势,设计和实现一个专业化的职业学校教材管理系统,能够有效地解决传统教材管理模式中存在的问题。系统可以自动化地管理教材的入库、出库、库存、申请、归还等信息,极大地提高教材管理的效率和准确性。
本研究的意义在于,通过开发一个基于SpringBoot框架的职业学校教材管理系统,能够帮助职业学校建立起一个现代化、信息化的教材管理平台,减少人工干预,提高教材管理流程的透明度和规范性。同时,系统为不同角色提供了便捷的操作界面,确保教材资源的合理分配与流转,减少教材短缺或过剩的情况,优化教材资源的利用率。通过该系统的实现,不仅能提升学校的管理效率,还能为其他教育机构在教材管理领域提供参考,推动职业教育信息化建设的进一步发展。
随着信息技术的不断进步,越来越多的高等教育和职业教育机构开始关注数字化、信息化在教学资源管理中的应用。教材管理作为教育资源管理的核心内容之一,其效率和准确性直接关系到教学的顺利进行。因此,许多学者和研究者已经对教材管理系统的设计与实现进行了多方面的探讨和研究。
在国外,教材管理系统的研究较早且成熟,特别是在欧美一些发达国家,许多高校和职业院校早已采用信息化手段进行教材的管理。国外的教材管理系统多采用Web架构,基于云平台进行教材库存、申请、借还等功能的管理,能够实现多终端的访问与操作,极大地提升了管理效率。国外的研究多集中在如何提高系统的自动化、智能化水平。此外,国外还注重教材管理系统的个性化和用户体验,力求为教师、学生和管理员提供更为友好的操作界面和便捷的管理功能。
国内的教材管理研究起步较晚,但近年来随着职业教育信息化建设的推进,教材管理系统的研究也逐渐得到了重视。国内的相关研究主要集中在教材管理系统的功能设计与实现上,结合现代化技术,如SpringBoot框架、数据库技术、前后端分离架构等,以提升系统的性能和安全性。国内一些职业院校和高校也开始逐步构建教材管理信息化平台,探索适合本校的教材管理模式。尽管国内已经取得了一些进展,但整体来看,教材管理系统的普及程度和应用水平仍有待提升。许多学校的教材管理仍依赖传统的手工操作或简单的管理工具,系统的智能化和自动化程度不高,无法满足日益增长的教学需求和复杂的教材管理任务。
目前,国内外的研究与实践都表明,构建一个现代化的、智能化的教材管理系统已成为提高教学管理效率、优化教育资源配置的必然趋势。尤其是在职业教育领域,由于其特殊的教材需求和管理特点,信息化管理系统的建设显得尤为重要。尽管国内在教材管理的系统化应用上相对滞后,但随着技术的不断进步和政策的支持,未来职业学校的教材管理系统将越来越向信息化、智能化、精准化的方向发展。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章:前言,主要介绍职业学校教材管理系统领域研究的背景和意义,概述国内外研究的现状。
第二章:关键技术,主要探讨和说明实现职业学校教材管理系统的关键技术。
第三章:系统分析,主要从职业学校教材管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对职业学校教材管理系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了职业学校教材管理系统的功能、系统界面的实现。
第六章:系统测试,主要对职业学校教材管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
结束语。总结全文研究内容,提出对职业学校教材管理系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
2 关键技术
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在职业学校教材管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在职业学校教材管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在职业学校教材管理系统中,Spring Boot可以快速搭建后端服务,并实现各种功能模块的集成和管理。
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。在浏览器/服务器(browser / Server Architecture)系统中,用户只需通过浏览器,就能够轻松地向分布在网络各处的众多服务器发送海量的请求。B/S系统大大地简化了客户端的工作,让用户体验更加便捷。
3 系统分析
3.1可行性分析
3.1.1技术可行性
从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。
考虑到Springboot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
从技术、经济和操作三个维度来看,职业学校教材管理系统的开发均具备高度的可行性。
(一)学生用户角色用例如下图所示。
图3.1学生用户用例图
学生用户具体功能说明如下所示。
首页:展示系统的整体信息和重要通知,方便学生快速了解系统的动态。
通知公告:学生可以查看学校发布的最新通知和公告,确保及时获取重要信息。
新闻资讯:学生能够查看学校发布的新闻和相关资讯,保持对学校活动和动态的了解。
用户反馈:学生可以通过系统提交反馈,提出问题或建议,促进学校和学生之间的互动。
教材信息:提供教材的详细信息,学生可以查看所需教材的内容和相关信息。
我的账户:管理个人账户信息,包括修改密码、更新联系方式等。
个人中心:
个人首页:展示学生的基本信息和重要功能快捷入口。
教材申请:学生可以通过此模块申请所需的教材。
教材归还:记录教材的归还情况,确保教材及时归还。
收藏:学生可以收藏感兴趣的教材或信息,方便后续查阅。
评论管理:学生可以查看和管理自己对教材的评价和反馈。
(二)教师用户角色用例如下图所示。
图3.2教师用户用例图
教师用户具体功能说明如下所示。
首页:展示系统的整体信息和重要通知,帮助教师快速了解系统动态。
通知公告:教师可以查看学校发布的最新通知和公告,确保及时获取学校的重要信息。
新闻资讯:教师可以查看学校发布的新闻和相关资讯,了解学校的活动和新闻动态。
用户反馈:教师可以通过系统提交反馈,表达意见或建议,促进学校与教师之间的互动。
教材信息:教师能够查看教材的详细信息,了解教材的内容和使用情况。
我的账户:管理个人账户信息,包括修改密码、更新联系方式等。
个人中心:
个人首页:展示教师的基本信息和功能入口,提供便捷的操作界面。
教材信息:查看所需教材的详细信息,方便选择和管理教材。
教材申请:教师可以审核学生申请的教材,以支持教学需求。
教材归还:记录教材的归还情况,确保教材按时归还,避免遗漏。
收藏:教师可以收藏感兴趣的教材或信息,方便后续查看。
评论管理:教师可以查看和管理自己对教材的评价和反馈。
(三)管理员角色用例如下图所示。
图3.3管理员用例图
系统后台管理端管理员具体功能说明如下所示。
后台首页:提供系统的整体概览,展示关键数据和系统状态,帮助管理员快速了解系统的运作情况。
系统用户管理:管理员可以管理系统中的用户账户,包括创建、修改和删除用户,分配角色和权限。
班级信息管理:管理员能够管理各个班级的基本信息,确保班级的教材需求得到及时跟进。
教材分类管理:管理员可以设置教材的分类,以便更好地管理和查询教材信息。
教材信息管理:提供对教材信息的录入、修改和删除功能,包括教材的名称、作者、出版社等信息。
教材申请管理:管理员审核学生提交的教材申请,确保教材的合理分配。
教材归还管理:负责管理教材归还的流程,包括记录教材的归还时间和状态。
教材库存管理:管理员查看和维护教材的库存信息,确保教材的充足供应。
教材入库管理:管理教材的入库流程,记录新到教材的数量、类型及相关信息。
教材出库管理:管理教材的出库流程,包括教材的发放和登记,确保教材流动有序。
系统管理(轮播图):管理员可以设置和管理首页的轮播图,展示重要信息或公告。
留言管理:管理员查看和处理用户留言,及时回应学校内部的反馈。
通知公告管理:管理员发布和管理学校的通知公告,确保信息及时传达给相关人员。
资源管理(新闻资讯、资讯分类):管理员负责发布和分类学校新闻及资讯,保持信息的更新与规范。
权限管理:管理员设置不同用户的权限,确保系统的安全性和有效性。
操作日志:记录和查看系统操作日志,确保系统的透明性和可追溯性。
对于职业学校教材管理系统的设计与实现,下面是系统性能分析表:
表3.1性能需求表
|
项目 |
内容 |
|
响应时间 |
系统对用户请求的响应时间需在500ms以内 |
|
并发用户数 |
系统需要支持1000个并发用户同时访问 |
|
吞吐量 |
系统每秒需要处理1000个请求 |
|
可用性 |
系统需要保证每月99.9%的可用性 |
|
数据安全 |
用户敏感数据需要加密存储,并支持数据库备份和恢复 |
|
数据一致性 |
系统中的数据操作需保证ACID特性,确保数据一致性 |
|
扩展性 |
系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量 |
|
可维护性 |
系统代码需要清晰易懂、结构良好,方便维护和修改 |
|
日志记录 |
系统需要记录用户操作日志、异常日志以及系统运行日志 |
|
监控报警 |
系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员 |
|
缓存设置 |
针对频繁使用的数据,系统需要进行合适的缓 |
(1)增加数据流程
系统中的所有用户(管理员、学生用户和教师用户)都可以实现增加数据功能,图3.4显示的就是在增加数据时的流程。

图3.4增加数据流程图
(2)修改数据流程
在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图3.5显示的就是修改数据的流程。

图3.5修改数据流程图
(3)删除数据流程
在系统中经常会出现一些过期的数据,那就可以直接删除这些数据,图3.6就是删除数据时的流程图。

图3.6删除数据流程图
4 系统设计
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。

图4.1系统架构图
功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。职业学校教材管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统功能结构图
E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本职业学校教材管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3总E-R图
在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID | |
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 | |
|
3 |
info |
text |
65535 |
0 |
Y |
N | ||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] | |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 | |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 | |
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 | |
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 | |
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 | |
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] | |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] | |
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 | |
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: | |
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: | |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: | |
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: | |
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: | |
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: | |
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: | |
|
7 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 | |
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: | |
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: | |
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: | |
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: | |
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: | |
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: | |
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: | |
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
class_information_id |
int |
10 |
0 |
N |
Y |
班级信息ID | |
|
2 |
class_name |
varchar |
64 |
0 |
Y |
N |
班级名称 | |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y | ||
|
2 |
token |
varchar |
255 |
0 |
Y |
N | ||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 | |
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: | |
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: | |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: | |
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: | |
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] | |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
message_id |
int |
10 |
0 |
N |
Y |
留言板ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID: |
|
3 |
title |
varchar |
64 |
0 |
Y |
N |
标题: | |
|
4 |
content |
longtext |
2147483647 |
0 |
N |
N |
内容: | |
|
5 |
nickname |
varchar |
32 |
0 |
N |
N |
昵称: | |
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像: | |
|
7 |
|
varchar |
125 |
0 |
Y |
N |
留言者邮箱 | |
|
8 |
phone |
varchar |
11 |
0 |
Y |
N |
留言者手机号码 | |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
11 |
reply |
longtext |
2147483647 |
0 |
Y |
N |
回复 | |
|
12 |
reply_state |
tinyint |
4 |
0 |
Y |
N |
0 |
回复状态 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: | |
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: | |
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: | |
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
operation_log_id |
int |
10 |
0 |
N |
Y |
操作日志ID | |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户角色 | |
|
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户账号 | |
|
4 |
routes |
varchar |
64 |
0 |
Y |
N |
模块名称 | |
|
5 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
return_of_textbooks_id |
int |
10 |
0 |
N |
Y |
教材归还ID | |
|
2 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
3 |
textbook_number |
varchar |
64 |
0 |
Y |
N |
教材编号 | |
|
4 |
textbook_name |
varchar |
64 |
0 |
Y |
N |
教材名称 | |
|
5 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
6 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 | |
|
7 |
textbook_inventory |
double |
9 |
2 |
Y |
N |
0.00 |
教材库存 |
|
8 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
9 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 | |
|
10 |
student_phone_number |
varchar |
64 |
0 |
Y |
N |
学生电话 | |
|
11 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 | |
|
12 |
student_class |
varchar |
64 |
0 |
Y |
N |
学生班级 | |
|
13 |
return_time |
date |
10 |
0 |
Y |
N |
归还时间 | |
|
14 |
return_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
归还数量 |
|
15 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
16 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
17 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
18 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
19 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] | |
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 | |
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 | |
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id | |
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 | |
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: | |
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: | |
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: | |
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: | |
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: | |
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: | |
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
student_users_id |
int |
10 |
0 |
N |
Y |
学生用户ID | |
|
2 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 | |
|
3 |
student_gender |
varchar |
64 |
0 |
Y |
N |
学生性别 | |
|
4 |
student_phone_number |
varchar |
64 |
0 |
Y |
N |
学生电话 | |
|
5 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 | |
|
6 |
student_class |
varchar |
64 |
0 |
Y |
N |
学生班级 | |
|
7 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
8 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
teacher_users_id |
int |
10 |
0 |
N |
Y |
教师用户ID | |
|
2 |
teachers_name |
varchar |
64 |
0 |
Y |
N |
教师姓名 | |
|
3 |
teacher_gender |
varchar |
64 |
0 |
Y |
N |
教师性别 | |
|
4 |
teachers_phone_number |
varchar |
64 |
0 |
Y |
N |
教师电话 | |
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
textbook_application_id |
int |
10 |
0 |
N |
Y |
教材申请ID | |
|
2 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
3 |
textbook_number |
varchar |
64 |
0 |
Y |
N |
教材编号 | |
|
4 |
textbook_name |
varchar |
64 |
0 |
Y |
N |
教材名称 | |
|
5 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
6 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 | |
|
7 |
textbook_inventory |
double |
9 |
2 |
Y |
N |
0.00 |
教材库存 |
|
8 |
student_users |
int |
10 |
0 |
Y |
N |
0 |
学生用户 |
|
9 |
student_name |
varchar |
64 |
0 |
Y |
N |
学生姓名 | |
|
10 |
student_phone_number |
varchar |
64 |
0 |
Y |
N |
学生电话 | |
|
11 |
student_id |
varchar |
64 |
0 |
Y |
N |
学生学号 | |
|
12 |
student_class |
varchar |
64 |
0 |
Y |
N |
学生班级 | |
|
13 |
hours_of_loan_service |
date |
10 |
0 |
Y |
N |
借阅时间 | |
|
14 |
borrowing_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
借阅数量 |
|
15 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
16 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 | |
|
17 |
return_of_textbooks_limit_times |
int |
10 |
0 |
N |
N |
0 |
归还限制次数 |
|
18 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
19 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
20 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
21 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
22 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
表textbook_classification (教材分类)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
textbook_classification_id |
int |
10 |
0 |
N |
Y |
教材分类ID | |
|
2 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
textbook_information_id |
int |
10 |
0 |
N |
Y |
教材信息ID | |
|
2 |
teacher_users |
int |
10 |
0 |
Y |
N |
0 |
教师用户 |
|
3 |
textbook_number |
varchar |
64 |
0 |
Y |
N |
教材编号 | |
|
4 |
textbook_name |
varchar |
64 |
0 |
Y |
N |
教材名称 | |
|
5 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
6 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 | |
|
7 |
publisher_name |
varchar |
64 |
0 |
Y |
N |
出版社名 | |
|
8 |
publication_time |
varchar |
64 |
0 |
Y |
N |
出版时间 | |
|
9 |
the_textbook_belongs_to |
varchar |
64 |
0 |
Y |
N |
教材所属 | |
|
10 |
textbook_cover |
varchar |
255 |
0 |
Y |
N |
教材封面 | |
|
11 |
textbook_inventory |
double |
9 |
2 |
Y |
N |
0.00 |
教材库存 |
|
12 |
textbook_introduction |
text |
65535 |
0 |
Y |
N |
教材简介 | |
|
13 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
14 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
15 |
comment_len |
int |
10 |
0 |
N |
N |
0 |
评论数 |
|
16 |
textbook_application_limit_times |
int |
10 |
0 |
N |
N |
0 |
申请限制次数 |
|
17 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
18 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
textbook_inventory_id |
int |
10 |
0 |
N |
Y |
教材库存ID | |
|
2 |
textbook_number |
varchar |
64 |
0 |
Y |
N |
教材编号 | |
|
3 |
textbook_name |
varchar |
64 |
0 |
Y |
N |
教材名称 | |
|
4 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
5 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 | |
|
6 |
publisher_name |
varchar |
64 |
0 |
Y |
N |
出版社名 | |
|
7 |
publication_time |
varchar |
64 |
0 |
Y |
N |
出版时间 | |
|
8 |
current_inventory |
double |
9 |
2 |
Y |
N |
0.00 |
当前库存 |
|
9 |
textbook_cover |
varchar |
255 |
0 |
Y |
N |
教材封面 | |
|
10 |
textbook_storage_limit_times |
int |
10 |
0 |
N |
N |
0 |
入库限制次数 |
|
11 |
textbook_outbound_limit_times |
int |
10 |
0 |
N |
N |
0 |
出库限制次数 |
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
textbook_outbound_id |
int |
10 |
0 |
N |
Y |
教材出库ID | |
|
2 |
textbook_number |
varchar |
64 |
0 |
Y |
N |
教材编号 | |
|
3 |
textbook_name |
varchar |
64 |
0 |
Y |
N |
教材名称 | |
|
4 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
5 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 | |
|
6 |
publisher_name |
varchar |
64 |
0 |
Y |
N |
出版社名 | |
|
7 |
publication_time |
varchar |
64 |
0 |
Y |
N |
出版时间 | |
|
8 |
current_inventory |
double |
9 |
2 |
Y |
N |
0.00 |
当前库存 |
|
9 |
delivery_time |
date |
10 |
0 |
Y |
N |
出库时间 | |
|
10 |
outbound_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
出库数量 |
|
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
13 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
14 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
15 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
textbook_storage_id |
int |
10 |
0 |
N |
Y |
教材入库ID | |
|
2 |
textbook_number |
varchar |
64 |
0 |
Y |
N |
教材编号 | |
|
3 |
textbook_name |
varchar |
64 |
0 |
Y |
N |
教材名称 | |
|
4 |
textbook_classification |
varchar |
64 |
0 |
Y |
N |
教材分类 | |
|
5 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 | |
|
6 |
publisher_name |
varchar |
64 |
0 |
Y |
N |
出版社名 | |
|
7 |
publication_time |
varchar |
64 |
0 |
Y |
N |
出版时间 | |
|
8 |
current_inventory |
double |
9 |
2 |
Y |
N |
0.00 |
当前库存 |
|
9 |
storage_time |
date |
10 |
0 |
Y |
N |
入库时间 | |
|
10 |
inventory_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
入库数量 |
|
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
13 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
14 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
15 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID | |
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 | |
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 | |
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 | |
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 | |
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 | |
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 | |
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 | |
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] | |
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] | |
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 | |
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] | |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] | |
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 | |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 系统实现
用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图5.1用户登录界面设计
登录关键代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图5.2用户注册界面设计
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
学生可以浏览学校发布的新闻和相关资讯,了解学校的活动、教学成果以及其他与学校相关的重要信息。通过这个功能,学生能够始终保持对学校动态的关注,增强对学校的归属感。
新闻资讯主界面图如下所示。

图5.3新闻资讯主界面设计
学生通过系统提交个人反馈。无论是关于教材管理的建议、系统的操作问题,还是学校其他方面的意见,学生都可以通过反馈模块直接与学校的管理部门沟通。这样可以帮助学校及时改进和优化管理流程,提高学生的参与感和满意度。
用户反馈主界面图如下所示。

图5.4用户反馈主界面设计
5.1.5教材信息界面
学生可以查看所有教材的详细信息,包括教材编号、教材分类、出版社名、教材所属等。学生可以通过该功能查询所需教材的信息,并决定是否进行教材申请。这一功能便于学生了解教材的具体内容,帮助他们更好地准备学习材料。教材信息主界面图如下所示。

图5.5教材信息主界面设计
教师可以在此模块查看借用的教材,并管理教材的归还情况。教师可以提前了解教材的归还日期和相关要求,确保按时归还教材,避免教材归还延误。
教材归还主界面图如下所示。

图5.6教材归还界面设计
教材归还添加代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
教师可以通过此功能模块审核学生申请的教材,通过输入教材名称、学生班级、教材分类、审核状态、学生姓名、教材申请等信息进行查询和重置的操作。教材申请主界面图如下所示。

图5.7教材申请界面设计
教师可以查询、重置 、添加和删除自己所需教材的详细信息,包括教材名称、出版信息、适用课程等,帮助教师更好地了解和选择教材。
教材信息主界面图如下所示。

图5.8教材信息界面设计
管理员可以管理系统中的所有用户,包括学生用户和教师用户。此功能允许管理员添加、修改、删除用户信息,并根据需要调整用户权限,确保系统的安全性和可控性。
系统用户主界面图如下所示。

图5.9系统用户界面设计
添加系统用户信息关键代码:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以添加、删除和修改班级信息。包括班级名称、班主任、学生人数等数据。管理员通过该功能可以方便地进行班级管理,为教材的分配、申请和归还提供准确的班级数据支持。
班级信息管理主界面图如下所示。

图5.10班级信息管理界面设计
添加班级信息代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员对教材进行分类和管理。管理员可以创建新的教材类别,并将教材按照这些分类进行归类。教材分类管理有助于提高教材管理的效率,使得教材的查询和使用更加方便和清晰。
教材分类管理界面如下所示。

图5.11教材分类管理详情界面设计
添加教材分类代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以对轮播图进行管理,包括添加、修改、删除轮播图,设置轮播图属性等。
系统管理界面如下所示。

图5.12系统管理界面设计
管理员可以发布公告信息,所有用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。
通知公告管理界面如下所示。

图5.13通知公告管理界面设计
上传图片关键代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
6 系统测试
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
6.2系统测试用例
系统测试包括:用户登录功能测试、教材信息查看功能测试、班级信息添加、班级信息搜索、密码修改功能测试,如表6-1、6-2、6-3、6-4、6-5所示:
表6-1 用户登录功能测试表
|
用例名称 |
用户登录系统 |
|
目的 |
测试用户通过正确的用户名和密码可否登录功能 |
|
前提 |
未登录的情况下 |
|
测试流程 |
1) 进入登录页面 2) 输入正确的用户名和密码 |
|
预期结果 |
用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
|
实际结果 |
实际结果与预期结果一致 |
教材信息查看功能测试:
表6-2教材信息查看功能测试表
|
用例名称 |
教材信息查看 |
|
目的 |
测试教材信息查看功能 |
|
前提 |
用户登录 |
|
测试流程 |
点击教材信息列表 |
|
预期结果 |
可以查看到所有教材信息 |
|
实际结果 |
实际结果与预期结果一致 |
管理员添加班级信息界面测试:
表6-3 管理员添加班级信息界面测试表
|
用例名称 |
班级信息添加测试用例 |
|
目的 |
测试班级信息添加功能 |
|
前提 |
管理员正常登录情况下 |
|
测试流程 |
1)管理员点击班级信息添加,填写信息。 2)点击进行提交。 |
|
预期结果 |
提交以后,班级信息列表会显示新的班级信息 |
|
实际结果 |
实际结果与预期结果一致 |
教材信息搜索功能测试:
表6-4教材信息搜索功能测试表
|
用例名称 |
教材信息搜索测试 |
|
目的 |
测试教材信息搜索功能 |
|
前提 |
无 |
|
测试流程 |
1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
|
预期结果 |
页面显示包含有搜索关键字的教材信息 |
|
实际结果 |
实际结果与预期结果一致 |
密码修改功能测试:
表6-5 密码修改功能测试表
|
用例名称 |
密码修改测试用例 |
|
目的 |
测试管理员密码修改功能 |
|
前提 |
管理员用户正常登录情况下 |
|
测试流程 |
1)管理员密码修改并完成填写。 2)点击进行提交。 |
|
预期结果 |
使用新的密码可以登录 |
|
实际结果 |
实际结果与预期结果一致 |
6.3系统测试结果
通过编写职业学校教材管理系统的测试用例,已经检测完毕用户登录模块、教材信息查看模块、班级信息添加模块、教材信息搜索模块、密码修改功能测试,通过这5大模块为职业学校教材管理系统的后期推广运营提供了强力的技术支撑。
结束语
经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的职业学校教材管理系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。
职业学校教材管理系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。
在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。
参考文献
[1]Wang Q ,Zheng L ,Hong R .Exploration on the Teaching Model of Java Programming and Practice for Students with No Programming Background[J].Advances in Educational Technology and Psychology,2024,8(6):
[2]Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):
[3]杨德顺,杨淑珍.基于Spring Boot的教材管理系统[J].电脑编程技巧与维护,2024,(05):100-103.DOI:10.16184/j.cnki.comprg.2024.05.046.
[4]Wai H K ,Funabiki N,Aung T S, et al.Answer Code Validation Program with Test Data Generation for Code Writing Problem in Java Programming Learning Assistant System[J].Engineering Letters,2024,32(5):
[5]Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.
[6]谷春红.基于B/S结构的高校教材管理系统设计与实现[J].海峡科学,2024,(03):117-122.
[7]李爽,范振凯.基于B/S架构的军校教材管理系统分析与设计[J].天津科技,2024,51(03):56-59+64.DOI:10.14099/j.cnki.tjkj.2024.03.020.
[8]Oswald C .Java Basics Using ChatGPT/GPT-4[M].Mercury Learning and Information:2023-12-28.
[9]王倩莹.基于微服务架构的教材征订系统设计与实现[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.001849.
[10]苏一平,赵邵蕾,高建亭,等.基于物联网的军校自编教材全流程管理系统设计与实现[J].现代信息科技,2023,7(16):159-165.DOI:10.19850/j.cnki.2096-4706.2023.16.035.
[11]邢玉凤.《职业院校教材管理办法》背景下教材管理系统开发与实践[J].昆明冶金高等专科学校学报,2023,39(03):26-31.
[12]周跃,宋雅丽.基于工作流的高校教材征订管理系统设计与实现[J].信息与电脑(理论版),2023,35(11):148-151.
[13]胡琴琴.基于可回收评估模型的高校教材管理系统设计与实现[D].中南大学,2022.DOI:10.27661/d.cnki.gzhnu.2022.006726.
[14]向兵,董晓红.基于SpringBoot的高校教材管理系统的设计与实现[J].电脑知识与技术,2022,18(14):12-15.DOI:10.14004/j.cnki.ckt.2022.0827.
[15]李柱坚.D学院教材征订管理流程优化研究[D].暨南大学,2021.DOI:10.27167/d.cnki.gjinu.2021.001427.
[16]朱翔宇,潘桃桃,文婉婷.基于云计算平台的高校教材管理系统分析与设计[J].信息系统工程,2021,(11):81-84.
[17]朱翔宇,谢小芳,潘桃桃,等.基于ASP.NET的高校教材管理系统的开发与设计[J].电脑知识与技术,2021,17(23):72-74.DOI:10.14004/j.cnki.ckt.2021.2391.
[18]唐嵘.“互联网+”背景下高校信息化教材管理体系研究[J].电脑知识与技术,2021,17(08):137-138.DOI:10.14004/j.cnki.ckt.2021.0665.
[19]马丽杰,大学数学教育教材制作管理系统.湖北省,武汉东湖学院,2020-11-05.
[20]袁延增,李征.基于JSP的中职学校教材采购管理系统的研究[J].电脑编程技巧与维护,2020,(10):69-71.DOI:10.16184/j.cnki.comprg.2020.10.027.
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
请关注点赞+私信博主,免费领取项目源码
692

被折叠的 条评论
为什么被折叠?



