第四章 系统设计
设计一个系统不单单是设计系统的页面,可以说系统设计其本质是一个结合了众多设计过程的比较复杂的系统工程。一般来说,在完成系统设计时,需要了解和掌握很多设计的知识,有界面布局技术的知识,页面采用的字体和颜色的运用,还有页面空白的规范使用等,如何将这些元素进行组合,让页面可以直观表达信息内容的同时,也能维持页面整体的美观。
4.1 系统设计思想
系统开发必然需要统一设计思想。根据这个设计思想指导系统的开发,可以加快系统开发进程。根据目前用户对卓越导师双选系统的需求,确定下述原则即为本系统的设计思想。
(1)实用性:本系统依照用户需求设计功能,遵循用户使用方便的原则,把用户在实际工作中的各个操作细节也充分考虑进来,让使用者在没有系统操作说明书的情况下,也能很容易的完成系统的操作。
(2)先进性:为了让本系统具备高性能,设计时,需要把目前的各种成熟技术加以考虑,比如软件开发技术也要考虑进去,比如计算机技术也需要进行考虑。对于系统结构的选择,本系统将毫不犹豫的选择成熟先进的B/S结构,方便开发的同时,对于后期的维护也提供了便利。
(3)高安全性:设计本系统时,对于一些系统的关键数据要严加看管,比如管理员本人的账号和密码,一定要加密保存在数据库里面。除此以外,也需要充分使用安全措施对用户的共享资源进行保护。
(4)可维护性:设计时,要提前考虑本系统的可维护性,因为一个便于维护的系统在后期产生的维护成本将会大大降低。维护一般包括软硬件的维护还有对于网络的维护等。
(5)可扩展性:重新开发一个新系统相比在原有系统上升级,会花费大量的资金和精力,由此,一个好的系统必定具备良好的可扩展性。在用户需求变动的情况下,可以通过系统的更新和升级来持续满足用户需求,这样的系统就具备了可扩展性。
4.2功能结构设计
这部分内容使用结构图这样的工具,显示设计结果,设计的管理员功能见下图。管理员管理学员,导师,管理项目信息,管理项目提交,管理指导项目信息。
图4-1 管理员功能结构图
这部分内容使用结构图这样的工具,显示设计结果,设计的导师功能见下图。导师管理导师选择信息,管理项目,管理项目提交并对学员提交的项目进行指导。
图4-2 导师功能结构图
这部分内容使用结构图这样的工具,显示设计结果,设计的学员功能见下图。学员选择导师,查看项目,提交已完成的项目文件,查看导师对项目的指导信息。
图4-3 学员功能结构图
4.3数据库设计
现如今,关系数据库已经广泛占据了市场。其具有坚实的理论基础,并且它可以很好的支持SQL这样的查询语言。所以,大部分程序的后台数据库几乎都是关系数据库。它们被用于长期对程序数据进行保存,采用的方式就是正确使用SQL语句在数据库中完成数据的插入,修改,删除等操作。
4.3.1 数据库E-R图
系统设计的内容不仅仅是对功能进行模块设计,它也包括了对数据库进行设计。功能设计这部分内容已经完成了,接下来进行的数据库设计也要根据规定的流程进行。
数据库设计这部分内容也需要参照用户的需求来完成。同时为了方便展示数据库中存在的各种关系,需要使用到E-R图,并运用E-R图中常见的符号来表示用户需求中的数据内容。所以,在建立E-R模型前,需要把用户需求的数据信息进行拆分并分析,并确定实体,实体特征,还有它们之间的关联,然后选择某个绘制E-R模型的工具比如Visio,亿图,Navicat等,用规定的符号去表示这些数据。这些常用的符号分别是矩形,菱形,椭圆,它们表示的内容分别是实体,关系,属性。
(1)设计的项目实体,还有其属性见下图。
图4-3 项目实体属性图
(2)设计的学员实体,还有其属性见下图。
图4-4 学员实体属性图
(3)设计的指导项目实体,还有其属性见下图。
图4-5 指导项目实体属性图
设计的导师实体,还有其属性见下图。
图4-6 导师实体属性图
(5)设计上述实体间关系见下图。
图4-7 实体间关系E-R图
4.3.2 数据库表结构
很多时候,在进行数据表的存储结构的设计时,都会遇到一些困扰,比如每张数据表如何命名,如何设计每张数据表里面的字段,如何为各个字段进行命名,以及如何设置字段的取值范围等信息。很多初学者,在进行表结构设计时,无论是对表进行命名,还是对字段进行命名,都是采用中文的方式,导致在编码阶段,在对数据进行操作时,总是报错,影响编码人员的开发速度,而且一旦数据表结构建立之后,后期进行修改也比较麻烦。因为设计数据表的结构,就意味着程序中需要长期保存的数据都是根据这样的结构进行保存的,在后面的使用中,无论是程序数据往数据表中写入,还是需要编辑或删除数据,都是按照这个规则进行。如此说来,设计数据库也是非常重要的任务,它关系到后面程序的开发,也关系到程序的运行使用。
通常在设计数据表结构时,会把前面设计的E-R图进行表结构的转化。把实体用来代表数据表,把其属性,也就是椭圆形代表的内容用来表示数据表中的字段,然后根据程序对于数据的存储要求,设计字段的类型和长度。比如用户的年龄可以用int(整数型),设置其长度为4或者6等。总之,数据表结构一旦建立,就可以往里面填充数据了。
表4.1 导师信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 否 | 工号 | |
mima | varchar(200) | 否 | 密码 | |
jiaoshixingming | varchar(200) | 是 | NULL | 教师姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
touxiang | varchar(200) | 是 | NULL | 头像 |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
dianhua | varchar(200) | 是 | NULL | 电话 |
表4.2 导师详细信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 是 | NULL | 工号 |
jiaoshixingming | varchar(200) | 是 | NULL | 教师姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
suojiaokemu | varchar(200) | 是 | NULL | 所教科目 |
renshu | int(11) | 否 | 人数 | |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
dianhua | varchar(200) | 是 | NULL | 电话 |
gerenjianjie | longtext | 是 | NULL | 个人简介 |
表4.3 导师选择信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
gonghao | varchar(200) | 是 | NULL | 工号 |
jiaoshixingming | varchar(200) | 是 | NULL | 教师姓名 |
renshu | int(11) | 否 | 人数 | |
xuanzeshijian | datetime | 是 | NULL | 选择时间 |
xuanzeneirong | longtext | 是 | NULL | 选择内容 |
xuehao | varchar(200) | 是 | NULL | 学号 |
xueshengxingming | varchar(200) | 是 | NULL | 学生姓名 |
sfsh | varchar(200) | 是 | 否 | 是否审核 |
shhf | longtext | 是 | NULL | 审核回复 |
表4.4 管理员信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
username | varchar(100) | 否 | 用户名 | |
password | varchar(100) | 否 | 密码 | |
role | varchar(100) | 是 | 管理员 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增时间 |
表4.5 项目提交信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
xiangmubianhao | varchar(200) | 是 | NULL | 项目编号 |
xiangmumingcheng | varchar(200) | 是 | NULL | 项目名称 |
gonghao | varchar(200) | 是 | NULL | 工号 |
jiaoshixingming | varchar(200) | 是 | NULL | 教师姓名 |
xiangmuwenjian | varchar(200) | 是 | NULL | 项目文件 |
xiangmuneirong | longtext | 是 | NULL | 项目内容 |
tijiaoshijian | datetime | 是 | NULL | 提交时间 |
xuehao | varchar(200) | 是 | NULL | 学号 |
xueshengxingming | varchar(200) | 是 | NULL | 学生姓名 |
表4.6 项目信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
xiangmubianhao | varchar(200) | 是 | NULL | 项目编号 |
xiangmumingcheng | varchar(200) | 否 | 项目名称 | |
xuehao | varchar(200) | 是 | NULL | 学号 |
xueshengxingming | varchar(200) | 是 | NULL | 学生姓名 |
xiangmuyaoqiu | longtext | 是 | NULL | 项目要求 |
fujian | varchar(200) | 是 | NULL | 附件 |
fabushijian | datetime | 是 | NULL | 发布时间 |
gonghao | varchar(200) | 是 | NULL | 工号 |
jiaoshixingming | varchar(200) | 是 | NULL | 教师姓名 |
表4.7 学员信息表
字段 | 类型 | 空 | 默认 | 注释 |
|---|---|---|---|---|
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
xuehao | varchar(200) | 否 | 学号 | |
mima | varchar(200) | 否 | 密码 | |
xueshengxingming | varchar(200) | 是 | NULL | 学生姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
touxiang | varchar(200) | 是 | NULL | 头像 |
shouji | varchar(200) | 是 | NULL | 手机 |
youxiang | varchar(200) | 是 | NULL | 邮箱 |
表4.8 指导项目信息表
第五章 系统实现
前面做的所有工作,都是为了给系统实现做准备。在系统实现期间,需要根据设计方案执行,通过运用编码技术实现一个可以处理事务的系统。
5.1管理员功能实现
5.1.1 导师信息管理
实现管理员权限的导师信息管理功能,其运行效果见下图。管理员修改导师所教科目信息,电话,邮箱,教师姓名等信息,可以删除指定的导师信息。
图5-1 导师信息管理页面
5.1.2 导师选择统计报表
实现管理员权限的导师选择统计报表功能,其运行效果见下图。管理员查看导师选择统计报表信息,查看选择各位导师的学员人数信息。
图5-2 导师选择统计报表页面
5.1.3 学员管理
实现管理员权限的学员管理功能,其运行效果见下图。管理员查看学员信息,对学员的资料进行修改,查询,删除等操作。
图5-3 学员管理页面
5.2导师功能实现
5.2.1 项目信息管理
实现导师权限的项目信息管理功能,其运行效果见下图。导师新增项目,上传项目文件,修改项目信息,在本页面删除指定的项目信息。
图5-4 项目信息管理页面
5.2.2 项目提交管理
实现导师权限的项目提交管理功能,其运行效果见下图。导师下载学员提交的已完成的项目文件,导师点击指导项目按钮可以对学员提交的项目进行指导。
图5-5 项目提交管理页面
5.3 学员功能实现
5.3.1 导师信息管理
实现学员权限的导师信息管理功能,其运行效果见下图。学员查看导师所教科目,邮箱以及电话等信息,可以点击右侧的选择导师按钮对该导师进行选择。
图5-6 导师信息管理页面
5.3.2 项目信息管理
实现学员权限的项目信息管理功能,其运行效果见下图。学员查看项目信息,在规定时间内完成导师布置的项目,并在当前页面提交已完成的项目文件。
图5-7 项目信息管理页面
5.3.3 指导项目查看
实现学员权限的指导项目查看功能,其运行效果见下图。学员查看导师对自己提交的项目的指导信息。
图5-8 指导项目查看页面