Java web技术的驾校培训管理软件之预约排班子系统

第四章  系统设计

4.1演示地址

点击查看

4.1.1管理员设置课程流程

管理员登录后会有课程设置的选项,点击该选项会跳出课程设置界面,可以进行课程的设置,如输入课程不合法会有相应的提示,直至输入正确才可以设置成功。这主要送为了驾校可以根据自己的现状来设置课程。如图3.1。

 

图4.1 管理员课程设置流程图

 

4.1.2学员预约流程

学员需要注册信息,登录后才可进行预约,但是注册模块不属于本论文范畴,在此不过多赘述。学员登录后会有课程预约的选项,点击选项会跳出课程预约界面,可以选择自己需要的课程进行预约。预约的课程必须送管理员设置好的,如果没有就无法预约。如图3.2。

 

图4.2预约流程图

4.1.3教练排班流程

管理员登录后会有排班设置的选项按钮,点击会跳出排班界面,界面中可以查看,并对教练进行排班,完成排班后会生成课表。排班相对于给预约的信息绑定对应的教练。如图 3.3。

 

图4.3 教练排班流程

4.1.4课表查看流程

排班完成后会有课表生成,课表会对教练及其预约课程的学生进行上课时间的展示,学生和教练都可以通过登录查看自己的课表以完成课程。这里相对于信息展示,没有具体操作。如图3.4。

 

图4.4课表查询流程图

4.1.5用户登录流程

用户必须登录以后才可以进行以上流程操作,登录是所有操作前提。登录操作是用户系统使用的必备操作,其功能主要功能为了确认用户信息,防止被人恶意进入系统造成信息的泄露以及信息被恶意篡改。同时他也可以防止机器人的不断攻击造成服务器负载。登录操作流程见图4.5。

 

图4.5登录流程图

4.2数据库设计

4.2.1 编写目的

为了更好的让开发人员以及维护人员认清数据的传输,了解本模块的数据库设计思路,数据库整体的设计和详细信息都以罗列总结。数据库相对于数据的仓库,也是系统的数据源,是存放各种用户信息的关键。

4.2.2 工具及数据库名称

工具:SQL Server 2012

数据库名称:PowerManageDB

4.2.3 命名规范及注意事项

(1)所有表的格式都必须为T_XXXXX,其中XXXXX代指表的名称,应为其中文意义的英译字母命名,也可以用英文简称,但不可用汉语拼音以及中文命名。

(2)所有视图的格式都为V_XXXXX,其中XXXXX代指视图的名称,应为其中文意义的英译字母命名,也可以用英文简称,但不可用汉语拼音以及中文命名

(3)表和视图的名称限制在30个字符。

(4)字段限制在50个字符。但是需要大量数据的字段除外,例如test字段。

(5)字段名称,对象,变量等都不可用采用中文字符命名,都应以其中文意义相同的英译命名,且不可在其中添加空格,特殊字符,符号。

(6)保证其字段名和其数据类型匹配,为了以后开发,数据类型应提前设计,不要随意更改,设计阶段就要设计合理。

4.2.4数据库用户创建

用户名:sa

密码:123456

权限:admin管理权限

访问链接:localhost

 

4.2.5表设计

数据库搭建完成后将进行表设计,表设计有利于开发者查看数据类型,主外键约束关系以及其表汇总,以及数据关联和数据连接。表汇总图可以更加直观的可视化查看数据关系,对开发者的工作有极大的增益。模块数据库表汇总详情见图4.6。

 

图4.6表汇

 

4.2.6实体关系图

       本模块一共可分为两种实体,一种为用户,其中包括管理员用户,学员用户和教练用户,另一种为课程实体。管理员可以编辑从而生成课程,课程可以被查询出来,学生通过查询出的课程可以预约课程,从而生成课程订单,有了预约订单才可以被排班,最后管理员排班生成课表。课表完成后整体排班流程完成,模块功能结束。详情见图4.7。

      

图4.7 实体关系图

4.2.7表详细设计

用户表用于记录用户基本信息,其中包括用户名,用户密码,用户真实姓名,用户联系方式等基本信息。还记录用户角色信息和其创建时间,由于本论文不涉及权限模块用户角色不做赘述。本模块的用户表主要存放管理员,教练,学员的信息以及其角色信息。详细见表4.1。

 

表 4.1 用户表

T_User用户

字段名

字段备注

类型

长度

主键/外键

非空

约束

自动编号

默认值

userid

用户id

varchar(50)

50

主键

非空

主键

自动编号

 

username

用户名称

varchar(50)1)

50

 

 

 

 

 

realname

真实姓名

varchar(50)

50

 

非空

 

 

 

roleId

角色id

Int

 

 

非空

外键

 

 

Pwd

密码

varchar(50)

50

 

非空

 

 

 

Phone

用户真实姓名

varchar(50)

50

 

非空

 

 

 

lastlogindate

注册时间

datetime

 

 

 

非空

 

 

 

createtime

登录状态

int

 

 

非空

 

 

 

loginstatus

最后登录时间

datetime

 

 

非空

 

 

 

Note

备注

Text

 

 

 

 

 

 

 

课程表是管理员设置生成的课程,其中包括驾校名称,课程项目,课程时间等基本课程信息,课程可以用于发布供学员选择预约,管理员和学员都可以查看,但只有管理员有修改,删除权限。表4.2。

 

表 4.2 课程表

T_Scheduling课程表

字段名

字段备注

类型

长度

主键/外键

非空

约束

自动编号

默认值

SchedulingID

课程编号

varchar(50)

50

主键

非空

主键

自动编号

 

ShoolName

驾校名称

varchar(50)

50

 

 

 

 

 

CarNum

可预约数

Int

50

 

非空

 

 

 

startTime

教学开始时间

datetime

 

 

非空

外键

 

 

overTime

教学结束时间

datetime

50

 

非空

 

 

 

NewMan

创建人

varchar(50)

50

 

非空

 

 

 

NewTime

创建时间

datetime

 

 

 

非空

 

 

 

amendMan

修改人

varchar(50)

50

 

非空

 

 

 

amendTime

修改时间

datetime

 

 

非空

 

 

 

subject

科目

varchar(50)

50

 

非空

 

 

 

 

预约表是学员预约情况记录表,主要记录学员的信息和预约的课程,属于中间表其到记录连接作用,并没有实际用户信息,是连接其他表的纽带。详细见表4.3。

 

 

 

表4.3预约记录表

T_Appointment预约表

字段名

字段备注

类型

长度

主键/外键

非空

约束

自动编号

默认值

AppointmentID

ID

Int

50

主键

非空

主键

自动编号

 

SchedulingID

课程表编号

Int

50

 

非空

外键

 

 

userid

用户编号

Int

50

 

非空

外键

 

 

 

排班表是管理员进行添加的表,他主要记录管理员排班的信息,其中排班依据为预约表信息。详情见表4.4.

表 3.4 排班表

T_TeacherScheduling排班表

字段名

字段备注

类型

长度

主键/外键

非空

约束

自动编号

默认值

TeacherSchedulingID

ID

Int

 

主键

非空

主键

自动编号

 

AppointmentID

预约表编号

Int

 

外键

 

 

 

 

UserID

教练编号

Int

 

外键

非空

 

 

 

Time

日期

datetime

 

 

非空

外键

 

 

Morning

时间段上午

varchar(50)

50

 

非空

 

 

 

Afternoon

时间段下午

varchar(50)

50

 

非空

 

 

 

Evening

时间段晚上

varchar(50)

50

 

非空

 

 

 

unit price

课时单价

float

 

 

非空

 

 

 

课表是排班后可查询的视图,用于记录排班信息,预约信息和课程信息,详情见表4.5。

表4.5 课表视图

V_Curriculum课程表

字段名

字段备注

类型

长度

主键/外键

非空

约束

自动编号

默认值

CurriculumID

课程编号

Int

 

 

非空

主键

自动编号

 

ShoolName

驾校名称

varchar(50)

50

 

非空

 

 

 

Studentname

学生姓名

varchar(50)

50

 

非空

 

 

 

Teachername

教练姓名

varchar(50)

50

 

非空

 

 

 

startTime

开课时间

datetime

 

 

非空

外键

 

 

overtime

结束时间

datetime

 

 

非空

 

 

 

Subject

科目

varchar(50)

50

 

非空

 

 

 

unit price

课时单价

float

 

 

非空

 

 

 

4.3项目架构设计

4.3.1架构设计

模块设计是基于SpringMVC框架,其实也就是把模块的前端需要展示数据用jose传输显示,后台通过Controller进行控制获取和主要的逻辑运算,这样较大的提高开发的效率。其中SpringMVC架构的好处有:

(1)Spring MVC是Spring提供的一个强大而灵活的模块式web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。

(2)SpringMVC是一种基于Java的以请求为驱动类型的轻量级Web框架,其目的是将Web层进行解耦,即使用“请求-响应”模型,从工程结构上实现良好的分层,区分职责,简化Web开发。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。[6]

(3)Spring框架最核心的就是所谓的依赖注入和控制反转。完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。

4.3.2项目结构设计

项目中不同的包存放不同的类,其中:

business.basic存放business相关文件,其主要作用是基类用于连接数据库和进行数据库操作的方法定义。business.dao用于存放方法接口,business.impl用于存放实现类。其中接口设计引用参考文献[8]

common.properties是日志功能记录的包。controller.service用于存放controller.类是用于数据传输逻辑控制的类。

Model为实体类用于映射数据库表单,视图实体类的存放。

Until是存放工具类的包。

WebRoot是存放前端页面。详情见图4.8设计思路参考文献[1]。

 

图4.8 项目结构图


 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值