4 系统设计
4.1 系统架构设计
本民宿预定系统小程序的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构如下图所示。
图4-1 系统架构
4.2 系统总体设计
民宿预定系统小程序总体分为前台用户模块和后台管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。
图4-2 系统功能结构图
4.3 系统功能设计
登录模块:登录模块是进入系统的入口,所有用户必须登录后才能访问系统。登录需要输入用户名和密码,如果多次尝试登录需要输入验证码。登录时需要选择用户的角色,是一般用户还是管理员登录等。登录成功后,会通过数据库获取用户的权限,并跳转至用户的主页面。
管理员用户管理模块:管理员管理包括:管理员的添加,修改和删除操作。添加管理员时,先判断用户添加的管理员是否是admin(超级管理员),如果不是则添加成功。修改时候,如果是超级管理员,可以修改所有管理员的信息,如果是普通管理员,那么只能修改自己的信息。超级管理员可以删除自己以外的所有其他管理员,普通管理员不能执行删除管理员的操作。
公告消息模块:可分为公告消息浏览、公告消息检索、公告消息维护三个模块,管理员对公告消息有维护的权限,发布新的公告消息、更新已有的公告消息等。
民宿管理模块:民宿管理分为民宿添加、修改和民宿预订。民宿信息由管理员进行修改、添加、删除操作;民宿预订由普通用户来执行。
4.4 数据库设计
4.4.1 数据需求分析
从前面可以分析到数据库中最重要的是民宿信息,预订信息,评论信息。分析可以得到如下数据描述:
平台用户:用于记录用户的各种信息,包括用户名、密码、姓名、性别、地址、邮箱、联系方式等数据项。
管理员:记录管理员的登录信息。包括用户名,密码,权限等数据项。
民宿:存储各种民宿信息。包括房间号、房型、入住价格、图片、民宿地址等数据项。
民宿预订。存储用户的民宿预订信息。包括民宿预订的房间号、房型、价格、预订天数、姓名、联系电话、入住日期、预订人、是否支付等数据项。
公告消息:存储平台内的公告消息内容。包括标题,公告消息内容,时间等数据项。
4.4.2 数据库概念设计
根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。
系统ER图如下图所示。
图4-3 系统ER图
4.4.3 数据库表设计
民宿预定系统小程序所拥有的数据表有以下:用户信息表,评论信息表,民宿信息表,民宿预订表,留言表。
由于数据表较多,只展示系统主要数据表,如下表所示。
表access_token (登陆访问时长)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID | |
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 | |
3 |
info |
text |
65535 |
0 |
Y |
N | ||
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
表article (文章:用于内容管理系统的文章)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] | |
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 | |
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 | |
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 | |
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 | |
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
表article_type (文章分类)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] | |
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] | |
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 | |
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: | |
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
表auth (用户权限管理)
5 系统实现
5.1用户前台功能模块(前端)
民宿预订系统小程序登录界面,通过填写账号、密码等信息进行登录,如图5-1所示:
图5-1登录界面图
注册,通过填写账号、密码、确认密码、昵称、邮箱、手机、身份等信息,输入完成后选择提交即可注册成功,如图5-2所示。
图5-2注册界面图
首页,可以进行首页(民宿信息、网站公告)、新闻资讯、我的(基本信息、收藏、订单管理、取消订单)等功能模块的查看与操作,如图5-3所示。
图5-3系统首页界面图
新闻资讯页面,用户可以查看新闻资讯详情,并可进行点赞、收藏、评论等操作,如图5-4所示。
图5-4新闻资讯界面图
民宿信息,民宿信息页面可以查看民宿名称、房东用户、民宿地址、房间号、房间房型、封面图片、入住价格、详情介绍、点赞数、点击数等信息,并可进行点赞、收藏、评论、预订等操作,如图5-5所示。
图5-5民宿信息界面图
订单管理,在订单管理页面可以查看、提交订单编号、民宿名称、房间号、房间房型、入住价格、预订用户、用户姓名、联系方式、身份证号、入住天数、总计总价等信息进行民宿预订,如图5-6所示。
图5-6订单管理界面图
取消订单,在取消订单页面可以填写并提交订单编号、民宿名称、房间号、房间房型、入住价格、预订用户、用户姓名、退订原因等信息进行取消订单,如图5-7所示。
图5-7取消订单界面图
5.2 管理员功能模块(后端)
管理员登录,管理员通过输入账号和密码,选择角色并点击登录进行系统登录操作,如图5-8所示。
图5-8管理员登录界图面
在管理员功能页面可以查看首页、轮播图、公告信息管理、新闻资讯、系统用户(管理员、普通用户、房东用户)、模块管理(民宿信息、订单管理、取消订单、销售数据、季度分析、盈亏数据)、等内容,并进行相对应操作,如图5-9所示。
图5-9管理员功能界面图
轮播图管理,在轮播图管理页面可以添加、删除标题、图片等内容,并可根据需要进行查询或重置操作,如图5-10所示。
图5-10轮播图管理界面图
新闻资讯,在新闻资讯页面可以查看标题、封面文章分类、标签、创建时间、更新时间等内容,并可根据需要进行添加、重置、修改、删除、查看评论操作,如图5-11所示。
图5-11新闻资讯界面图
销售数据,在销售数据管理页面可以查看报表标题、报表日期、捎售数量、记录人员、备注信息、创建时间、更新时间等信息,并可根据需要进行添加、重置、修改、删除操作,如图5-12所示。
图5-12销售数据管理界面图
季度分析,在季度分析管理页面可以查看报表季度、报表日期、盈利金领、记录人员、备注信息、创建时间、更新时间等信息,并可根据需要进行添加、重置、修改、删除操作,如图5-13所示。
图5-13季度分析管理界面图
盈亏数据,在盈亏数据管理页面可以查看报表标题、报表日期、盈利金般、亏损金额、记录人员、备注信息、创建时间、更新时间等信息,并可根据需要进行添加、重置、修改、删除操作,如图5-14所示。
图5-14盈亏数据管理界面图
房东用户功能模块
民宿信息,在民宿信息页面可以查看民宿名称、房东用户、民宿地址、房间号、房间房型、封面图片、入住价格、详情介绍等信息,并可根据需要进行添加、重置、修改、删除操作,如图5-15所示。
图5-15民宿信息界面图
订单管理,在订单管理页面可以查看订单编号、民宿名称、房间号、房间房型、入住价格、预订用户、用户姓名、联系方式、身份证号、入住天数、总计总价等信息,并可根据需要进行添加、重置、修改、删除操作,如图5-16所示。
图5-16订单管理界面图