重庆网络营销_公司网站管理_上海seo公司_苏州seo优化
系统设计 - 系统架构设计
小说网站采用三层开发设计模式,分为:用户界面层,业务逻辑层和数据访问层。用户界面层用来和用户交互,业务逻辑层负责业务的处理和各层之间的数据的传递;数据访问层负责对数据库的访问和检索。
系统的架构图如下图所示。
图4-1 系统架构图
系统各层之间的调用过程如下:
(1)用户通过用户界面层访问系统,向系统提交请求,界面层对请求进行初步的处理和包装,并判断是否要与业务逻辑层进行交互。
(2)业务逻辑层接收来自界面层的请求,对请求进行数据处理。然后调用数据访问层来实现数据库访问,数据访问层访问数据库,将数据读出并返回给逻辑层。
(3)逻辑层将处理的结果,返回给界面层。界面层加以处理呈现给用户。
-
- 系统功能结构
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是系统用户管理、小说资讯管理、小说分类管理、在线讨论管理、小说中心管理、系统管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
系统功能结构图如下所示。
图4-2系统功能结构图
-
- 功能模块设计
管理员账户的基本信息管理。主要提供管理员账户的基本信息录入、删除、维护和查询等功能,包括:
管理员录入管理员账户基本信息;
管理员更新、增加及删除管理员账户基本信息;
用户根据管理员账户 ID 查询基本信息;
系统管理员更改个人密码;
留言的基本信息管理。主要提供留言的基本信息录入、修改和查询功能,包括:
用户录入留言基本信息;
管理员更新、增加及删除留言基本信息;
评论的基本信息管理。主要提供评论的基本信息录入、修改和查询功能,包括:
用户录入评论基本信息;
管理员更新、增加及删除评论基本信息;
管理员根据评论 ID 查询评论基本信息;
小说分类的基本信息管理。主要是提供小说分类的基本信息录入、维护和查询功能,包括:
用户录入小说分类基本信息;
用户更新、增加及删除小说分类基本信息;
用户根据小说分类 ID 查询小说分类基本信息;
小说的基本信息管理。主要提供小说的基本信息录入、删除、维护和查询功能, 包括:
管理员录入小说信息;
管理员更新、增加小说基本信息;
管理员根据小说 ID 查询小说基本信息;
用户根据个人信息导航栏查询小说信息;
-
- 数据库设计
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
-
-
- 概念模型设计
本系统在数据库中存放了多张表,分别是用户表、评论表、小说资讯表、小说分类表、小说中心表。
系统的主要实体间关系E-R图如下图所示。
图4-7系统E-R图
-
-
- 逻辑结构设计
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示几个表。
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
user_registration_id | int | 11 | 是 | 是 | 用户注册ID |
gender | varchar | 64 | 否 | 否 | 性别 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
user_id | int | 11 | 是 | 否 | 用户ID |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
novel_classification_id | int | 11 | 是 | 是 | 小说分类ID |
novel_type | varchar | 64 | 否 | 否 | 小说类型 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
novel_center_id | int | 11 | 是 | 是 | 小说中心ID |
novel_number | varchar | 64 | 否 | 否 | 小说编号 |
novel_type | varchar | 64 | 否 | 否 | 小说类型 |
novel_name | varchar | 64 | 否 | 否 | 小说名称 |
novel_download | varchar | 255 | 否 | 否 | 小说下载 |
author | varchar | 64 | 否 | 否 | 作者 |
time_to_market | date | 0 | 否 | 否 | 上市时间 |
cover | varchar | 255 | 否 | 否 | 封面 |
introduction_to_the_novel | text | 0 | 否 | 否 | 小说简介 |
novel_content | longtext | 0 | 否 | 否 | 小说内容 |
hits | int | 11 | 是 | 否 | 点击数 |
praise_len | int | 11 | 是 | 否 | 点赞数 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
forum_id | mediumint | 8 | 是 | 是 | 论坛id |
display | smallint | 5 | 是 | 否 | 排序 |
user_id | mediumint | 8 | 是 | 否 | 用户ID |
nickname | varchar | 16 | 否 | 否 | 昵称:[0,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 | 是 | 否 | 论坛分类 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
hits_id | int | 10 | 是 | 是 | 点赞ID: |
user_id | int | 11 | 是 | 否 | 点赞人: |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
source_table | varchar | 255 | 否 | 否 | 来源表: |
source_field | varchar | 255 | 否 | 否 | 来源字段: |
source_id | int | 10 | 是 | 否 | 来源ID: |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
upload_id | int | 11 | 是 | 是 | 上传ID |
name | varchar | 64 | 否 | 否 | 文件名 |
path | varchar | 255 | 否 | 否 | 访问路径 |
file | varchar | 255 | 否 | 否 | 文件路径 |
display | varchar | 255 | 否 | 否 | 显示顺序 |
father_id | int | 11 | 否 | 否 | 父级ID |
dir | varchar | 255 | 否 | 否 | 文件夹 |
type | varchar | 32 | 否 | 否 | 文件类型 |
-
-
- 数据库连接设计
通过Mysql库和Mysqli库函数连接。这种方法是Java连接MySQL经常使用的方法,不管是从效率上还是易用性来说,它都比用ODBC接口连接好。
Java存取mysql数据库的四个步骤是:
(1)建立连接:mysql_connect ();
(2)操纵数据库:mysql_select_db();返回布尔型数据值
(3)操纵数据库中的数据:mysql_query ();
(4)关闭连接:mysql_close ();
数据库连接代码如下所示。
<?Java
error_reporting(0);
//数据库链接文件
$host='127.0.0.1';//数据库服务器
$user='root';//数据库用户名
$password='';//数据库密码
$database='Javarjgcxwzzxa1a8';//数据库名
$conn=@mysql_connect($host,$user,$password) or die('数据库连接失败!');
@mysql_select_db($database) or die('没有找到数据库!');
mysql_query("set names 'gb2312'");
function getoption($ntable,$nzd)
{
$sql="select ".$nzd." from ".$ntable." order by id desc";
$query=mysql_query($sql);
$rowscount=mysql_num_rows($query);
if($rowscount>0)
{
for ($fi=0;$fi<$rowscount;$fi++)
{
?>
<option value="<?Java echo mysql_result($query,$fi,0);?>"><?Java echo mysql_result($query,$fi,0);?></option>
<?Java
}
}
}
">