4 系统设计
大学校园生活信息平台的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全方位考虑,那么系统实现的部分也就无从下手,所以系统设计部分也是至关重要的一个环节,只有根据用户需求进行细致全面的考虑,才有希望开发出功能健全稳定的程序软件。
4.1 系统概要设计
本次拟开发的系统为了节约开发成本,也为了后期在维护和升级上的便利性,打算通过浏览器来实现系统功能界面的展示,让程序软件的主要事务集中在后台的服务器端处理,前端部分只用处理少量的事务逻辑。下面使用一张图(如图4.1所示)来说明程序的工作原理。
图4.1 程序工作的原理图
4.2 系统功能结构设计
在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.2展示的就是管理员功能结构图,管理员主要负责填充员工和其类别信息,并对已填充的数据进行维护,包括修改与删除,管理员也需要对奖惩对培训,对考,对薪资等进行管理。
图4.2 系统功能结构图
4.3 数据库设计
程序功能操作不管是添加,修改,还是删除等功能产生的数据都是经由数据库进行数据保存和更新的,所以一个数据库设计的好坏也是程序是否好坏的判定标准,因为程序的成功,有一半的功劳都是靠数据库的优秀设计。数据库一旦设计得良好是可以减轻开发人员的开发负担的。
4.3.1 数据库E-R图设计
这个部分的设计需要使用到E-R图绘制工具,常用的工具就是Visio工具来绘制E-R模型图,这款工具不仅可以快速创建需要的E-R模型图,而且该工具提供的操作界面很简单,可以短时间内修改绘图界面的图形或者是文字的属性。在绘制E-R模型图时,要分清楚各个图形代表的含义,以免绘制出错,E-R模型图由长方形(实体),椭圆形(属性),菱形(关系)这三部分图形符号组成,绘制期间要区分开来,用准确的图形符号代表相应的数据元素。
(1)下图是活动实体和其具备的属性。
活动实体属性图
(2)下图是用户实体和其具备的属性。
用户实体属性图
(3)下图是考试记录表实体和其具备的属性。
考试记录表实体属性图
(4)下图是答题详情表实体和其具备的属性。
答题详情表实体属性图
(5)下图是试卷选题实体和其具备的属性。
试卷选题实体属性图
(6)下图是错题表实体和其具备的属性。
错题表实体属性图
(7)下图是活动收藏实体和其具备的属性。
活动收藏实体属性图
(8)下图是论坛实体和其具备的属性。
论坛实体属性图
(9)下图是试卷实体和其具备的属性。
试卷实体属性图
(10)下图是活动留言实体和其具备的属性。
活动留言实体属性图
(11)下图是试题表实体和其具备的属性。
试题表实体属性图
(12)下图是校园资讯实体和其具备的属性。
校园资讯实体属性图
(13)下图是活动报名实体和其具备的属性。
活动报名实体属性图
各个实体之间的联系用下图的E-R图表示。绘制的系统E-R图见图4.8。
图4.8 系统E-R图
4.3.2 数据库表结构设计
数据库系统一旦选定之后,需要根据程序要求在数据库中建立数据库文件,并在已经完成创建的数据库文件里面,为程序运行中产生的数据建立对应的数据表格,数据表结构设计就是对创建的数据表格进行字段设计,字段长度设计,字段类型设计等,当数据表格合理设计完成之后,才能正常存储相关程序运行产生的数据信息。
表4.1字典表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | dic_code | String | 字段 | 是 |
3 | dic_name | String | 字段名 | 是 |
4 | code_index | Integer | 编码 | 是 |
5 | index_name | String | 编码名字 | 是 |
6 | super_id | Integer | 父字段id | 是 |
7 | beizhu | String | 备注 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.2试卷表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | exampaper_name | String | 试卷名称 | 是 |
3 | exampaper_date | Integer | 考试时长(分钟) | 是 |
4 | exampaper_myscore | Integer | 试卷总分数 | 是 |
5 | kemu_types | Integer | 科目 | 是 |
6 | exampaper_types | Integer | 试卷状态 | 是 |
7 | zujuan_types | Integer | 组卷方式 | 是 |
8 | exampaper_delete | Integer | 逻辑删除(1代表未删除 2代表已删除) | 是 |
9 | create_time | Date | 创建时间 | 是 |
表4.3试卷选题表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | exampaper_id | Integer | 试卷 | 是 |
3 | examquestion_id | Integer | 试题 | 是 |
4 | exampapertopic_number | Integer | 试题分数 | 是 |
5 | create_time | Date | 创建时间 | 是 |
表4.4试题表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | examquestion_name | String | 试题名称 | 是 |
3 | kemu_types | Integer | 科目 | 是 |
4 | examquestion_options | String | 选项,json字符串 | 是 |
5 | examquestion_answer | String | 正确答案 | 是 |
6 | examquestion_analysis | String | 答案解析 | 是 |
7 | examquestion_types | Integer | 试题类型 | 是 |
8 | examquestion_sequence | Integer | 试题排序,值越大排越前面 | 是 |
9 | create_time | Date | 创建时间 | 是 |
表4.5考试记录表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | examrecord_uuid_number | String | 考试编号 | 是 |
3 | yonghu_id | Integer | 考试用户 | 是 |
4 | exampaper_id | Integer | 所属试卷id(外键) | 是 |
5 | total_score | Integer | 所得总分 | 是 |
6 | insert_time | Date | 考试时间 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.6答题详情表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | examredetails_uuid_number | String | 试卷编号 | 是 |
3 | yonghu_id | Integer | 用户id | 是 |
4 | examquestion_id | Integer | 试题id(外键) | 是 |
5 | examredetails_myanswer | String | 考生答案 | 是 |
6 | examredetails_myscore | Integer | 试题得分 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.7错题表表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_id | Integer | 用户id | 是 |
3 | exampaper_id | Integer | 试卷(外键) | 是 |
4 | examquestion_id | Integer | 试题id(外键) | 是 |
5 | examredetails_myanswer | String | 考生作答 | 是 |
6 | insert_time | Date | 记录时间 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.8论坛表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | forum_name | String | 帖子标题 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | users_id | Integer | 管理员 | 是 |
5 | forum_content | String | 发布内容 | 是 |
6 | super_ids | Integer | 父id | 是 |
7 | forum_types | Integer | 帖子类型 | 是 |
8 | forum_state_types | Integer | 帖子状态 | 是 |
9 | insert_time | Date | 发帖时间 | 是 |
10 | update_time | Date | 修改时间 | 是 |
11 | create_time | Date | 创建时间 | 是 |
表4.9活动表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | huodong_name | String | 活动名称 | 是 |
3 | huodong_uuid_number | String | 活动编号 | 是 |
4 | huodong_photo | String | 活动照片 | 是 |
5 | huodong_address | String | 活动地点 | 是 |
6 | huodong_types | Integer | 活动类型 | 是 |
7 | huodong_kucun_number | Integer | 活动库存 | 是 |
8 | zan_number | Integer | 赞 | 是 |
9 | cai_number | Integer | 踩 | 是 |
10 | huodong_kaishi_time | Date | 活动开始时间 | 是 |
11 | huodong_clicknum | Integer | 活动热度 | 是 |
12 | huodong_content | String | 活动内容 | 是 |
13 | shangxia_types | Integer | 是否上架 | 是 |
14 | huodong_delete | Integer | 逻辑删除 | 是 |
15 | insert_time | Date | 录入时间 | 是 |
16 | create_time | Date | 创建时间 | 是 |
表4.10活动收藏表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | huodong_id | Integer | 活动 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | huodong_collection_types | Integer | 类型 | 是 |
5 | insert_time | Date | 收藏时间 | 是 |
6 | create_time | Date | 创建时间 | 是 |
表4.11活动留言表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | huodong_id | Integer | 活动 | 是 |
3 | yonghu_id | Integer | 用户 | 是 |
4 | huodong_liuyan_text | String | 留言内容 | 是 |
5 | insert_time | Date | 留言时间 | 是 |
6 | reply_text | String | 回复内容 | 是 |
7 | update_time | Date | 回复时间 | 是 |
8 | create_time | Date | 创建时间 | 是 |
表4.12活动报名表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | huodong_yuyue_uuid_number | String | 报名编号 | 是 |
3 | huodong_id | Integer | 活动 | 是 |
4 | yonghu_id | Integer | 用户 | 是 |
5 | huodong_yuyue_text | String | 报名理由 | 是 |
6 | huodong_yuyue_yesno_types | Integer | 报名状态 | 是 |
7 | huodong_yuyue_yesno_text | String | 审核回复 | 是 |
8 | huodong_yuyue_shenhe_time | Date | 审核时间 | 是 |
9 | insert_time | Date | 活动报名时间 | 是 |
10 | create_time | Date | 创建时间 | 是 |
表4.13校园资讯表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | news_name | String | 资讯名称 | 是 |
3 | news_photo | String | 资讯图片 | 是 |
4 | news_types | Integer | 资讯类型 | 是 |
5 | insert_time | Date | 资讯发布时间 | 是 |
6 | news_content | String | 资讯详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.14用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_name | String | 用户姓名 | 是 |
3 | yonghu_phone | String | 用户手机号 | 是 |
4 | yonghu_id_number | String | 用户身份证号 | 是 |
5 | yonghu_photo | String | 用户头像 | 是 |
6 | yonghu_email | String | 用户邮箱 | 是 |
7 | create_time | Date | 创建时间 | 是 |
表4.15管理员表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | username | String | 学生名 | 是 |
3 | password | String | 密码 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增时间 | 是 |
5 系统实现
系统实现部分就是将系统分析,系统设计部分的内容通过编码进行功能实现,以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析,系统设计最主要还是进行功能,系统操作逻辑的设计,也包括了存储数据的数据库方面的设计等内容,系统实现就是一个最终的实施阶段,将前面的设计成果进行物理转化,最终出具可以运用于实际的软件系统。
5.1 管理员功能介绍
5.1.1 校园活动管理
如图5.1显示的就是校园活动管理页面,此页面提供给管理员的功能有:查看校园活动列表,新增校园活动,修改校园活动,删除校园活动。
图5.1 校园活动管理页面
5.1.2 校园资讯管理
如图5.2显示的就是校园资讯管理页面,此页面提供给管理员的功能有:新增校园资讯,修改校园资讯,删除校园资讯。
图5.2 校园资讯管理页面
5.1.3 校园资讯类型管理
如图5.3显示的就是校园资讯类型管理页面,此页面提供给管理员的功能有:新增校园资讯类型,修改校园资讯类型,删除校园资讯类型。
图5.3 校园资讯类型管理页面