4 系统设计
垃圾分类小程序的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全方位考虑,那么系统实现的部分也就无从下手,所以系统设计部分也是至关重要的一个环节,只有根据用户需求进行细致全面的考虑,才有希望开发出功能健全稳定的程序软件。
4.1 系统设计的原则
在系统设计过程中,也需要遵循相应的设计原则,这些设计原则可以帮助设计者在短时间内设计出符合设计规范的设计方案。设计原则主要有可靠性,安全性,可定制化,可扩展性,可维护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。
可靠性:一个软件是否可靠决定了其是否被用户使用,设计不可靠的软件,用户很容易就遗弃;
安全性:程序软件承担了信息的保存与管理等事务,安全性不足的软件会导致使用者承担巨大的损失;所以系统安全也是需要考虑进入的;
可定制化:市场环境从来都不是一直固定不变,面对客户群体的改变,以及使用环境的改变,市场需求的改变等因素,程序软件也要易于调整以适应各种变化;
可扩展性:程序软件在运行使用期间,也需要及时引进当下的新技术来进行系统优化,主要就是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中继续占有市场;
可维护性:程序软件的维护需要一定量的资金,不管是排除现有程序错误,还是变更软件的现有需求,都需要在软件技术上投入一定资金,所以易于维护的软件程序就可以降低技术层面的资金消耗;
可升级性:程序软件的投入使用,会面临用户数量增多的情况,用户对软件的使用率也会提升,所以系统面临这种情况,仍然需要通过升级保持性能的合理,这样才能够适应市场;
客户体验:设计出来的程序软件在界面上不能够太复杂,要遵循界面设计的原理设计出简单,方便操作的功能操作界面,让用户易于接受软件,并乐于使用软件提供的功能。
4.2 系统概要设计
本次拟开发的系统为了节约开发成本,也为了后期在维护和升级上的便利性,打算通过浏览器来实现系统功能界面的展示,让程序软件的主要事务集中在后台的服务器端处理,前端部分只用处理少量的事务逻辑。下面使用一张图(如图4.1所示)来说明程序的工作原理。
图4.1 程序工作的原理图
4.3 系统功能结构设计
在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.2展示的就是管理员功能结构图,管理员功能有个人中心,管理员管理,濒危生物管理,地区管理,环保健康类型管理,保护法类型管理,公告类型管理,论坛管理,环保健康管理,环境保护管理,环境保护法管理,公告信息管理,轮播图管理。用户可以注册登录,修改个人信息,查看管理员发布的各种信息还可以留言,可以对濒危生物收藏,环保健康收藏,环境保护收藏等操作。
图4.2 管理员功能结构图
4.4 数据库设计
程序功能操作不管是添加,修改,还是删除等功能产生的数据都是经由数据库进行数据保存和更新的,所以一个数据库设计的好坏也是程序是否好坏的判定标准,因为程序的成功,有一半的功劳都是靠数据库的优秀设计。数据库一旦设计得良好是可以减轻开发人员的开发负担的。
4.4.1 数据库E-R图设计
这个部分的设计需要使用到E-R图绘制工具,常用的工具就是Visio工具来绘制E-R模型图,这款工具不仅可以快速创建需要的E-R模型图,而且该工具提供的操作界面很简单,可以短时间内修改绘图界面的图形或者是文字的属性。在绘制E-R模型图时,要分清楚各个图形代表的含义,以免绘制出错,E-R模型图由长方形(实体),椭圆形(属性),菱形(关系)这三部分图形符号组成,绘制期间要区分开来,用准确的图形符号代表相应的数据元素。
-
管理员实体中的属性有姓名,密码等信息。以此绘制的实体属性图见图4.4。
图4.4 管理员实体属性图
(2)用户实体中的属性有账户,密码,姓名等信息。以此绘制的实体属性图见图4.5。
图4.5 车主实体属性图
(3)环保新闻实体中的属性有编号,状态等。以此绘制的实体属性图见图4.6。
图4.6 环保新闻实体属性图
4.4.2 数据库表结构设计
数据库系统一旦选定之后,需要根据程序要求在数据库中建立数据库文件,并在已经完成创建的数据库文件里面,为程序运行中产生的数据建立对应的数据表格,数据表结构设计就是对创建的数据表格进行字段设计,字段长度设计,字段类型设计等,当数据表格合理设计完成之后,才能正常存储相关程序运行产生的数据信息。
1环保新闻表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | news_name | String | 新闻标题 | 是 |
3 | news_types | Integer | 新闻类型 | 是 |
4 | news_photo | String | 新闻图片 | 是 |
5 | insert_time | Date | 添加时间 | 是 |
6 | news_content | String | 新闻详情 | 是 |
7 | create_time | Date | 创建时间 | 是 |
2垃圾信息表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | lajixinxi_name | String | 垃圾名称 | 是 |
3 | lajixinxi_photo | String | 垃圾图片 | 是 |
4 | lajixinxi_types | Integer | 垃圾类型 | 是 |
5 | lajixinxi_content | String | 垃圾介绍 | 是 |
6 | insert_time | Date | 发布日期 | 是 |
7 | create_time | Date | 创建时间 | 是 |
3试题表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | exampaper_id | Integer | 所属知识问答试卷id(外键) | 是 |
3 | examquestion_name | String | 试题名称 | 是 |
4 | examquestion_options | String | 选项,json字符串 | 是 |
5 | examquestion_score | Integer | 分值 | 是 |
6 | examquestion_answer | String | 正确答案 | 是 |
7 | examquestion_analysis | String | 答案解析 | 是 |
8 | examquestion_types | Integer | 试题类型 | 是 |
9 | examquestion_sequence | Integer | 试题排序,值越大排越前面 | 是 |
10 | create_time | Date | 创建时间 | 是 |
4知识问答试卷表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | exampaper_name | String | 知识问答试卷名称 | 是 |
3 | exampaper_date | Integer | 测试时长(分钟) | 是 |
4 | exampaper_myscore | Integer | 知识问答试卷总分数 | 是 |
5 | exampaper_types | Integer | 知识问答试卷状态 | 是 |
6 | exampaper_delete | Integer | 逻辑删除(0代表未删除 1代表已删除) | 是 |
7 | create_time | Date | 创建时间 | 是 |
5错题表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
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 | 创建时间 | 是 |
6用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | username | String | 用户名 | 是 |
3 | password | String | 密码 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增时间 | 是 |
7token表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | userid | Integer | 用户id | 是 |
3 | username | String | 用户名 | 是 |
4 | tablename | String | 表名 | 是 |
5 | role | String | 角色 | 是 |
6 | token | String | 密码 | 是 |
7 | addtime | Date | 新增时间 | 是 |
8 | expiratedtime | Date | 过期时间 | 是 |
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_state_types | Integer | 帖子状态 | 是 |
8 | insert_time | Date | 发帖时间 | 是 |
9 | update_time | Date | 修改时间 | 是 |
10 | create_time | Date | 创建时间 | 是 |
9字典表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
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 | 创建时间 | 是 |
10环保视频表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | huanbaoshipin_name | String | 视频标题 | 是 |
3 | huanbaoshipin_photo | String | 视频封面 | 是 |
4 | huanbaoshipin_video | String | 视频 | 是 |
5 | huanbaoshipin_types | Integer | 视频类型 | 是 |
6 | huanbaoshipin_content | String | 视频介绍 | 是 |
7 | insert_time | Date | 发布日期 | 是 |
8 | create_time | Date | 创建时间 | 是 |
11意见反馈表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | yonghu_id | Integer | 提问用户 | 是 |
3 | chat_issue | String | 问题 | 是 |
4 | issue_time | Date | 问题时间 | 是 |
5 | chat_reply | String | 回复 | 是 |
6 | reply_time | Date | 回复时间 | 是 |
7 | zhuangtai_types | Integer | 状态 | 是 |
8 | chat_types | Integer | 数据类型 | 是 |
9 | insert_time | Date | 创建时间 | 是 |
12用户表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | username | String | 账户 | 是 |
3 | password | String | 密码 | 是 |
4 | yonghu_name | String | 用户姓名 | 是 |
5 | yonghu_photo | String | 头像 | 是 |
6 | sex_types | Integer | 性别 | 是 |
7 | yonghu_phone | String | 联系方式 | 是 |
8 | yonghu_email | String | 邮箱 | 是 |
9 | yonghu_delete | Integer | 假删 | 是 |
10 | insert_time | Date | 添加时间 | 是 |
11 | create_time | Date | 创建时间 | 是 |
13环保知识表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | huanbaozhishi_name | String | 标题 | 是 |
3 | huanbaozhishi_photo | String | 封面 | 是 |
4 | huanbaozhishi_content | String | 内容 | 是 |
5 | insert_time | Date | 发布日期 | 是 |
6 | create_time | Date | 创建时间 | 是 |
14配置文件表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
1 | Id | Int | id | 否 |
2 | name | String | 配置参数名称 | 是 |
3 | value | String | 配置参数值 | 是 |
15测试记录表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
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 | 创建时间 | 是 |
16答题详情表
序号 | 列名 | 数据类型 | 说明 | 允许空 |
---|---|---|---|---|
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 | 创建时间 | 是 |
5 系统实现
系统实现部分就是将系统分析,系统设计部分的内容通过编码进行功能实现,以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析,系统设计最主要还是进行功能,系统操作逻辑的设计,也包括了存储数据的数据库方面的设计等内容,系统实现就是一个最终的实施阶段,将前面的设计成果进行物理转化,最终出具可以运用于实际的软件系统。
5.1 管理员功能介绍
5.1.1 管理员管理
如图5.1显示的就是管理员管理页面,管理员可以对管理员信息进行添加,修改,删除,查询操作。
图5.1 管理员管理页面
5.1.2 视频类型管理
如图5.2显示的就是视频类型管理页面,管理员可以对视频类型信息进行添加,修改,删除,查询操作。
图5.2 视频类型管理页面
5.1.3 论坛管理
如图5.3显示的就是论坛管理页面,管理员可以对论坛信息进行添加,修改,删除,查询操作。
图5.3 论坛管理页面
5.1.4 新闻类型管理
如图5.4显示的就是新闻类型管理页面,管理员可以对新闻类型信息进行添加,修改,删除,查询操作。
图5.4 新闻类型管理页面
5.1.5 环保视频管理
如图5.5显示的就是环保视频页面,管理员可以对环保视频信息进行添加,修改,删除,查询操作。
图5.5 环保视频管理页面
5.1.6 环保知识管理
如图5.6显示的就是环保知识管理页面,管理员可以对环保知识信息进行添加,修改,删除,查询操作。
图5.6 环保知识管理页面
5.1.7 环保新闻管理
如图5.7显示的就是环保新闻管理页面,管理员可以对环保新闻进行添加,修改,删除,查询操作。
图5.7 环保新闻管理页面
5.1.8 用户信息管理
如图5.8显示的就是用户信息页面,管理员可以对用户信息进行添加,修改,删除,查询操作。
图5.8 用户信息管理页面
5.2 用户功能介绍
5.2.1 首页
如图5.9显示的就是首页页面,用户注册登录后可以看到首页,下面是导航,中间是内容。
图5.9 首页页面
5.2.2 环保视频
如图5.9显示的就是环保视频页面,用户可以在环保视频界面查看环保视频信息。
图5.10 环保视频页面
5.2.3 垃圾信息
如图5.9显示的就是垃圾信息页面,用户点击垃圾信息可以查看垃圾信息。
图5.11 垃圾信息页面
5.2.4 我的
如图5.9显示的就是我的页面,用户登录后可以点击我的可以看到关于我的所有功能。
图5.12 我的页面