第4章 系统设计
用户对着浏览器操作,肯定会出现某些不可预料的问题,但是不代表着系统对于用户在浏览器上的操作不进行处理,所以说,要提前考虑可能会出现的问题。
4.1 系统设计思想
系统设计,肯定要把设计的思想进行统一,只有统一的思想才能指导程序的开发,并且可以让众多的程序开发人员更快速的进入状态,提高开发速度。根据当前系统的既定需求,下面将进行本系统设计思想的阐述。
-
扩展性:开发任何一个系统的时候不可避免要考虑这个问题。软件版本的更迭是一种常识,任何一个软件都不会一次性开发就成永恒,软件是一个不断成长的东西。所以考虑问题的时候需要对当前问题进行数据上的扩大化,然后进行归纳整理,最终形成具有一定扩展性的程序。程序的可扩展性必然会影响开发进度,所以最终需要综合评估程序的可扩展程度,进而有的放矢,循序开发。
-
实用性:程序设计是一个先高屋建瓴式的设想,然后再具体化,实用性就是具体化的第一个步骤,要充分考虑使用者是不懂程序设计的这一点,使用者只是懂得常规性的上网操作步骤,并不需要对程序进行理解,所以一定要让使用者感觉到便利,感觉到实用性的存在,如果使用者使用程序过程中没发现使用程序的好处,那么程序设计的实用性将大大降低。
-
安全性:当使用者使用的过程中,会产生大量的相关数据,这些数据必须有安全性的保证,否则当使用者发现数据出现问题的原因是程序设计问题的时候,将会对程序开发者失去信任,甚至可能会产生大量的费用赔偿问题,这是一个不可避免的问题。所以安全性关系开发与使用者双方的经济利益,程序的安全性是一定要保证的。
-
先进性:程序设计的先进性是开发者进行考虑的,必须要在满足系统功能的前提下,必须要选择好当下最合适的技术。最合适的技术要从开发成本,使用成本以及维护成本里面综合分析,经过综合分析后要让技术实现最优解,保持先进的技术生产力。
-
维护性:程序开发之初就要考虑以后的维护问题。维护是在程序开发完毕,已经上线可以运作,进入生产试用过程和使用过程中才会发现需要维护的必要。要通过各方面降低维护成本,不是说维护的越少就代表程序开发的越完美,程序既然是人类进行设计制造的,肯定有很多不可避免的问题产生,那么如何维护好程序的正常运作也是一门很重要的学问。
4.2 功能结构设计
图4.1即为设计的管理员功能结构,管理员权限操作的功能包括增删改查教师,公告,文件信息,用户信息,查看论坛帖子回复,管理基础数据信息。
图4.1 管理员功能结构
图4.2即为设计的教师功能结构,教师权限操作的功能包括下载文件,把文件标识为重点文件,或取消文件的重点标识,查看公告,新增论坛帖子,查看论坛回复信息。
图4.2 教师功能结构
图4.3即为设计的用户功能结构,用户权限操作的功能包括查看文件的重点标识,下载文件,发布帖子,管理帖子,发布分享文件,管理分享的文件,查看公告等。
图4.3 用户功能结构
4.3 数据库设计
校园资料分享微信小程序运行中产生的数据需要按照提前设置的存储规则进行保存,设计出一个符合项目的最优数据存储格式,因为它能减少用户的等待时间,还可以对系统的请求在最短时间内进行响应。所以,对数据库设计时,需要对功能需求进行详细的拆分,以及对业务状态的细分,然后设计具体的存储规则,保证数据库能正常运作,缩短数据处理时间,并在一定程度上降低数据冗余,节省存储空间。
4.3.1 数据库概念设计
实体-联系图还有一个名称即E-R图,是Entity Relationship Diagram各英文单词首字母的缩写,它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体,联系,属性的有效手段。绘制E-R图能够选择的工具也有很多,但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具,因为它是基于可视化处理,使用它创建E-R图非常简单。使用基本的E-R图构成元素,比如椭圆,菱形,矩形,还有实线段来表达对应的信息,椭圆代表属性,即实体的特征,矩形代表实体,即数据库中的一个具体数据表,菱形代表实体中相互关系,实线段主要是完成椭圆,矩形,菱形的连接。
(1)图4.4即为用户这个实体所拥有的属性值。
图4.4 用户实体属性图
(2)图4.5即为文件这个实体所拥有的属性值。
图4.5 文件实体属性图
(3)图4.6即为公告这个实体所拥有的属性值。
图4.6 公告实体属性图
- 图4.7即为管理员这个实体所拥有的属性值。
图4.7 管理员实体属性图
- 图4.8即为上面介绍的实体中存在的联系。
图4.8 实体间关系E-R图
4.3.2 数据库物理设计
本小节主要任务即是根据上述内容进行数据存储结构的设计,实体的属性就用来表示字段名称,不同的字段表示的数据类型以及取值都不相同,以及该表各个字段是否能够保持空等进行说明,设计完成一张数据表的结构之后,在保存时同样要命名,尽量选择英文名称进行命名并保存,还不容易导致系统出错。接下来就对设计的表进行简单说明。
表4.1 论坛表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | int(11) | 否 |
forum_name | 帖子标题 | varchar(200) | 是 |
jiaoshi_id | 教师 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
users_id | 管理员 | int(11) | 是 |
forum_content | 发布内容 | text | 是 |
super_ids | 父id | int(11) | 是 |
forum_state_types | 帖子状态 | int(11) | 是 |
insert_time | 发帖时间 | timestamp | 是 |
update_time | 修改时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.2 教师表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
jiaoshi_name | 教师姓名 | varchar(200) | 是 |
jiaoshi_photo | 头像 | varchar(255) | 是 |
sex_types | 性别 | int(11) | 是 |
jiaoshi_phone | 联系方式 | varchar(200) | 是 |
jiaoshi_id_number | 身份证号 | varchar(200) | 是 |
jiaoshi_email | 邮箱 | varchar(200) | 是 |
jiaoshi_delete | 假删 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.3 公告信息表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | int(11) | 否 |
news_name | 公告标题 | varchar(200) | 是 |
news_types | 公告类型 | int(11) | 是 |
news_photo | 公告图片 | varchar(200) | 是 |
insert_time | 公告时间 | timestamp | 是 |
news_content | 公告详情 | text | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.4 管理员表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | bigint(20) | 否 |
username | 用户名 | varchar(100) | 否 |
password | 密码 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增时间 | timestamp | 否 |
表4.5 文件信息表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | int(11) | 否 |
wenjian_name | 文件名称 | varchar(200) | 是 |
wenjian_types | 文件类型 | int(11) | 是 |
wenjian_photo | 文件图片 | varchar(200) | 是 |
wenjian_file | 文件 | varchar(200) | 是 |
wenjian_jifen_number | 下载积分 | int(11) | 是 |
zan_number | 赞 | int(11) | 是 |
cai_number | 踩 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
wenjian_status_types | 文件状态 | int(11) | 是 |
biaoshi_status_types | 文件标识 | int(11) | 是 |
wenjian_content | 文件详情 | text | 是 |
insert_time | 发布时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.6 文件收藏表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | int(11) | 否 |
wenjian_id | 文件 | int(11) | 是 |
yonghu_id | 用户 | int(11) | 是 |
wenjian_collection_types | 收藏类型 | int(11) | 是 |
insert_time | 收藏时间 | timestamp | 是 |
create_time | 创建时间 | timestamp | 是 |
表4.7 用户表
字段 | 注释 | 类型 | 空 |
---|---|---|---|
id (主键) | 主键 | int(11) | 否 |
username | 账户 | varchar(200) | 是 |
password | 密码 | varchar(200) | 是 |
yonghu_name | 用户姓名 | varchar(200) | 是 |
yonghu_photo | 头像 | varchar(255) | 是 |
sex_types | 性别 | int(11) | 是 |
yonghu_phone | 联系方式 | varchar(200) | 是 |
yonghu_id_number | 身份证号 | varchar(200) | 是 |
yonghu_email | 邮箱 | varchar(200) | 是 |
yonghu_jifen_number | 积分 | int(11) | 是 |
yonghu_delete | 假删 | int(11) | 是 |
create_time | 创建时间 | timestamp | 是 |
第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.2 教师功能实现
5.2.1 文件信息管理
图5.5 即为编码实现的文件信息管理界面,教师下载管理员上传的文件,教师可以把文件标识为重点,也能取消文件的重点标识信息,教师查询文件信息,需要根据文件状态或文件名称查询文件。
图5.5 文件信息管理界面
5.2.2 论坛管理
图5.6 即为编码实现的论坛管理界面,教师新增论坛帖子,教师对自己的帖子进行跟踪,包括随时查看论坛帖子的回复,以及删除论坛帖子的回复或对论坛帖子发布回复信息。
图5.6 论坛管理界面
5.3 用户功能实现
5.3.1 文件信息
图5.7 即为编码实现的文件信息界面,用户查看文件的标识信息,查看文件状态,下载文件,收藏喜欢的文件。
图5.7 文件信息界面
5.3.2 论坛信息
图5.8 即为编码实现的论坛信息界面,用户查看论坛信息界面展示的所有的帖子,每当用户查看完帖子内容之后,都可以评论帖子。
图5.8 论坛信息界面
5.3.3 我发布的文件
图5.9 即为编码实现的我发布的文件界面,用户也能发布文件,点击新增按钮就可以登记文件信息,上传文件,最后提交。用户自己发布的文件,用户也可以删除。
图5.9 我发布的文件界面
5.3.4 我的发帖
图5.10 即为编码实现的我的发帖界面,用户点击新增按钮即可发布帖子,我的发帖界面展示的帖子都是用户自己发布的帖子,所以用户可以删除帖子,也能对自己的帖子的内容以及回复信息进行查看。
图5.10我的发帖界面