本章主要讨论的内容包括新闻网站系统的功能模块设计、数据库系统设计。
本新闻网站系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1新闻网站系统架构设计图
表现层(UI):又称UI层,主要完成本新闻网站系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本新闻网站系统时的舒适度。UI的界面设计也要适应不同版本的新闻网站系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本新闻网站系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本新闻网站系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本新闻网站系统的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本新闻网站系统中的用例。那么接下来就要开始对本新闻网站系统的架构、主要功能和数据库开始进行设计。新闻网站系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2新闻网站系统功能模块图
(1)用户模块结构图
本网站的用户包括管理员和注册用户模块。两种用户模块的功能基本是相同的,注册用户模块比管理员多了一个注册功能,所以以用户模块的结构图为例进行分析,如下图:
图3-3用户用户模块结构图
(2)各个结构的具体业务逻辑
a.查询用户信息:设计最基础的查询功能,主要就是根据用户id查询用户信息。该功能主要体现在管理员用户信息查询和用户自己查询信息的时候。
b.修改用户信息:用户可以根据情况,对自己的基本信息进行修改,包括名字修改、密码修改、头像修改等操作。
c.增加用户:用户可以通过注册来获得账号
d.删除用户信息:管理员没有权利进行删除信息的删除,最多把用户加入到黑名单中,禁止用户进行登录操作。
(1)评论模块结构图
新闻网站系统是一个交流性质的公开网站,用户和用户之间可以对网站上的内容,比如交流中心、资讯等进行点评,增加用户之间的互动性。但是同时也为了更好的规范评论的内容,给予管理员删除不合适的言论的功能,所以需要专门设计一个评论管理模块,具体的结构图如下:
图3-4评论模块结构图
(2)各个结构的具体业务逻辑
a.查询评论:设计最基础的查询功能,主要就是根据用户id查询该用户下的所有评论信息。
b.发布评论:学生用户可以根据情况,发布自己评论信息到网站上。
c.删除评论:管理员没有权限修改用户的评论信息,但是可以删除用户的整条评论。
(1)校园新闻模块结构图
新闻网站系统是中需要存储不少用户校园新闻信息,用户可以查看新闻信息,进行查看校园新闻,管理员可以添加,修改,删除校园新闻等,具体的结构图如下:
图3-5校园新闻模块结构图
(2)各个结构的具体业务逻辑
a.添加校园新闻:管理员可以对校园新闻进行添加。
b.修改校园新闻:管理员可以对校园新闻进行修改。
c.删除校园新闻:管理员可以对校园新闻进行删除。
d.查看校园新闻:用户可以查看校园新闻列表,进行点赞、收藏、评论。
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
下面是整个新闻网站系统中主要的数据库表总E-R实体关系图。
图3-6 新闻网站系统总E-R关系图
下面根据 新闻网站系统的数据库总E-R关系图可以得出 新闻网站系统需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。
图3-7注册用户E-R关系图
图3-8 评论E-R关系图
图3-9论坛E-R关系图
图3-10校园新闻E-R关系图
通过上一小节中 新闻网站系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
(1)表user实体用来存放系统中用户(管理员,和用户)信息中的用户名+昵称+密码+手机号码+邮箱等;
表3-1 user用户信息表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
user_id | mediumint | 8 | 是 | 是 | 用户ID |
state | smallint | 1 | 是 | 否 | 账户状态 |
user_group | varchar | 32 | 否 | 否 | 所在用户组 |
login_time | timestamp | 0 | 是 | 否 | 上次登录时间 |
phone | varchar | 11 | 否 | 否 | 手机号码 |
phone_state | smallint | 1 | 是 | 否 | 手机认证 |
username | varchar | 16 | 是 | 否 | 用户名 |
nickname | varchar | 16 | 否 | 否 | 昵称 |
password | varchar | 64 | 是 | 否 | 密码 |
| varchar | 64 | 否 | 否 | 邮箱 |
email_state | smallint | 1 | 是 | 否 | 邮箱认证 |
avatar | varchar | 255 | 否 | 否 | 头像地址 |
create_time | timestamp | 0 | 是 | 否 | 创建时间 |
(2)表slides实体用来存放轮播图信息中的标题+内容+轮播图+点击量等;
表3-2 slides轮播图信息表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
slides_id | int | 10 | 是 | 是 | 轮播图ID |
title | varchar | 64 | 否 | 否 | 标题 |
content | varchar | 255 | 否 | 否 | 内容 |
url | varchar | 255 | 否 | 否 | 链接 |
img | varchar | 255 | 否 | 否 | 轮播图 |
hits | int | 10 | 是 | 否 | 点击量 |
create_time | timestamp | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(3)表campus_news实体用来存放校园新闻信息中的新闻分类+新闻名称+新闻内容+封面+发布时间+用户姓名等;
表3-3 campus_news校园新闻信息表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
campus_news_id | int | 11 | 是 | 是 | 校园新闻ID |
news_classification | varchar | 64 | 否 | 否 | 新闻分类 |
news_name | varchar | 64 | 否 | 否 | 新闻名称 |
cover | varchar | 255 | 否 | 否 | 封面 |
release_time | date | 0 | 否 | 否 | 发布时间 |
news_content | text | 0 | 否 | 否 | 新闻内容 |
user_no | int | 11 | 否 | 否 | 用户姓名 |
hits | int | 11 | 是 | 否 | 点击数 |
praise_len | int | 11 | 是 | 否 | 点赞数 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(4)表registered_user实体用来存放注册用户信息中的用户姓名+性别+审核状态等;
表3-4 registered_user注册用户表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
registered_user_id | int | 11 | 是 | 是 | 注册用户ID |
user_no | varchar | 64 | 是 | 否 | 用户姓名 |
gender | varchar | 64 | 否 | 否 | 性别 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
user_id | int | 11 | 是 | 否 | 用户ID |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
(5)表comment实体用来存放评论信息中的评论人ID+回复评论ID+内容+昵称+头像地址等;
表3-5 comment评论信息表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
comment_id | int | 11 | 是 | 是 | 评论ID |
user_id | int | 11 | 是 | 否 | 评论人ID |
reply_to_id | int | 11 | 是 | 否 | 回复评论ID |
content | longtext | 0 | 否 | 否 | 内容 |
nickname | varchar | 255 | 否 | 否 | 昵称 |
avatar | varchar | 255 | 否 | 否 | 头像地址 |
create_time | timestamp | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
source_table | varchar | 255 | 否 | 否 | 来源表 |
source_field | varchar | 255 | 否 | 否 | 来源字段 |
source_id | int | 10 | 是 | 否 | 来源ID |
(6)表forum实体用来存放论坛信息中的用户ID+昵称+标题+封面图+点赞数+关键词+描述+正文等;
表3-6 forum论坛信息表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
forum_id | mediumint | 8 | 是 | 是 | 论坛id |
display | smallint | 5 | 是 | 否 | 排序 |
user_id | mediumint | 8 | 是 | 否 | 用户ID |
nickname | varchar | 16 | 否 | 否 | 昵称 |
praise_len | int | 10 | 否 | 否 | 点赞数 |
hits | int | 10 | 是 | 否 | 访问数 |
title | varchar | 125 | 是 | 否 | 标题 |
keywords | varchar | 125 | 否 | 否 | 关键词 |
description | varchar | 255 | 否 | 否 | 描述 |
url | varchar | 255 | 否 | 否 | 来源地址 |
tag | varchar | 255 | 否 | 否 | 标签 |
img | text | 0 | 否 | 否 | 封面图 |
content | longtext | 0 | 否 | 否 | 正文 |
create_time | timestamp | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
avatar | varchar | 255 | 否 | 否 | 发帖人头像 |
type | varchar | 64 | 是 | 否 | 论坛分类 |
整个新闻网站系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
app开发免费免费建站廊坊seo培训深圳seo爱好者网站套餐给我一个网站广州seo优化上海网站排名优化百度网站提交网上交易系统淄博seo公司合肥关键词排名优化百度快照优化公司宁德seofanke.com哪里网页建设便宜网站方案设计自助建站系统郑州做网站公司无锡网络推广小程序定制公司东莞关键词优化外包南京网站制作给我一个网站软件制作app中企动力邮箱什么是响应式网站襄阳seo广州seo服务常德百度推广无忧建站网