第3章 系统设计
3.1系统功能结构设计
系统的功能结构是采用树形图来绘制功能设计。根据分析所得,本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。本火锅店点餐系统的功能结构设计图如下图3-1所示:
图3-1火锅店点餐系统功能结构图
3.1.1系统功能设计
(1)本系统中最基本的功能就是用户登录功能,管理员和普通用户都需要验证身份后才可以进行操作。用户登录功能的结构图如下图3-2所示:
图3-2用户登录功能的结构图
根据用户登录的结构图分析用户登录的流程,用户登录的流程图如下图3-3所示:
图3-3用户登录功能的流程图
在用户登录功能里的类图中含有用户名、密码和角色信息。用户登录的类图如下图3-4所示:
图3-4用户登录功能的类图
(2)本系统是针对用户点餐功能而进行设计的,所以本系统的核心功能为菜品管理功能。菜品管理功能为管理员的功能,用户可以浏览菜品信息、购买菜品,但不能添加、删除、编辑菜品。菜品管理功能的活动图如下图3-5所示:
图3-5菜品管理功能的活动图
(3)用户的主要功能为点餐。用户在点餐时首先浏览菜品,选择菜品和填写点餐信息、提交点餐信息,完成点餐。用户点餐的时序图如下图3-6所示:
图3-6用户点餐功能的时序图
用户点餐功能的类图如下图3-7所示:
图3-7用户点餐功能的类图
3.2数据库设计
数据库为数据的仓库,决定了数据的保存和修改、删除、调用等。数据库的稳定决定了系统里数据的安全。为了保证数据的查询效率,在建立数据库时需要按照一定的规则。数据不单指文本类型的,也包括音乐、图片甚至是声音都可以称为数据。为了使数据库更加安全,在建立数据库时就需要使用正规的数据库管理系统和在设置权限时需要设置严格的角色分权,更要阻止一切外部端口的探测形为。
本系统采用Mysql数据库,在建立数据库时采用Root用户名。数据库的建立过程为先进行数据的ER图设计然后进行数据库表的实现。
3.2.1数据ER图设计
数据ER图中记录了关系、实体、属性。实体与实体的关系决定了数据在调用时的正确与否,实体的属性决定了该实体的内容。数据ER图的设计同样重要,也是数据库建立的基础。
通过系统中的功能数据分析,本系统的实体主要有菜品、管理员、用户、订单等。
管理员的ER图中的属性有账号、密码、权限。管理员ER图如下图3-10所示:
图3-10管理员ER图
用户的ER图里的属性有性别、姓名、编号等,用户的ER图如下图3-11所示:
图3-11用户ER图
菜品的ER图里的属性有菜品编号、菜品名称、价格、食材等,菜品的ER图如下图3-12所示:
图3-12菜品ER图
(4)订单的ER图里的属性有订单人、编号、订单时间、菜品等,订单ER图如下图3-13所示:
图3-13订单ER图
(5)预定实体的属于包括预定时间、预定人、联系方式等。预定实体的ER图如下图3-14所示:
图3-14预定信息的ER图
(6)本系统的全局ER图如下图3-15所示:
图3-15全局ER图
3.2.2数据库表设计
数据库表是把ER图进行详细化、实体化。不同的表名下保存着相对应的表信息数据。在数据库表里记录着数据的主键、外键、数据类型、长度等。本火锅店点餐系统所创建的数据库表有用户信息表、菜品信息表、订单信息表、预定餐桌信息表等。本火锅店点餐系统的数据库表如下表3-1—3-5所示:
表3-1 address
序号列名数据类型长度小数位标识主键外键允许空默认值说明1idbigint20是是否auto_increment2addtimetimestamp否CURRENT_TIMESTAMP3useridbigint20否4addressvarchar200否5namevarchar200否6phonevarchar200否7isdefaultvarchar200否 |
---|
表3-2 caipinfenlei
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
caipinfenlei |
varchar |
200 |
否 |
表3-3 caipinxinxi
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
caipinmingcheng |
varchar |
200 |
否 |
||||||
4 |
caipinfenlei |
varchar |
200 |
否 |
||||||
5 |
caipintupian |
varchar |
200 |
是 |
||||||
6 |
caipintese |
varchar |
200 |
是 |
||||||
7 |
caipinxiangqing |
longtext |
是 |
|||||||
8 |
price |
float |
是 |
表3-4 canzhuoxinxi
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
canzhuobianhao |
varchar |
200 |
是 |
||||||
4 |
canzhuotupian |
varchar |
200 |
是 |
||||||
5 |
canzhuoleixing |
varchar |
200 |
否 |
||||||
6 |
canzhuozhuangtai |
varchar |
200 |
否 |
||||||
7 |
yudingshuoming |
longtext |
是 |
|||||||
8 |
gengxinshijian |
datetime |
是 |
表3-5 canzhuoyuding
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
kaizhuobianhao |
varchar |
200 |
是 |
||||||
4 |
canzhuobianhao |
varchar |
200 |
是 |
||||||
5 |
canzhuotupian |
varchar |
200 |
是 |
||||||
6 |
canzhuoleixing |
varchar |
200 |
是 |
||||||
7 |
kaizhuoshijian |
datetime |
是 |
|||||||
8 |
yonghuming |
varchar |
200 |
是 |
||||||
9 |
shouji |
varchar |
200 |
是 |
||||||
10 |
sfsh |
varchar |
200 |
是 |
否 |
|||||
11 |
shhf |
longtext |
是 |
|||||||
12 |
userid |
bigint |
20 |
是 |
表3-6 cart
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
tablename |
varchar |
200 |
是 |
caipinxinxi |
|||||
4 |
userid |
bigint |
20 |
否 |
||||||
5 |
goodid |
bigint |
20 |
否 |
||||||
6 |
goodname |
varchar |
200 |
是 |
||||||
7 |
picture |
varchar |
200 |
是 |
||||||
8 |
buynumber |
int |
11 |
否 |
||||||
9 |
price |
float |
是 |
|||||||
10 |
discountprice |
float |
是 |
表3-7 config
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
name |
varchar |
100 |
否 |
||||||
3 |
value |
varchar |
100 |
是 |
表3-8 discusscaipinxinxi
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
refid |
bigint |
20 |
否 |
||||||
4 |
userid |
bigint |
20 |
否 |
||||||
5 |
nickname |
varchar |
200 |
是 |
||||||
6 |
content |
longtext |
否 |
|||||||
7 |
reply |
longtext |
是 |
表3-9 news
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
title |
varchar |
200 |
否 |
||||||
4 |
introduction |
longtext |
是 |
|||||||
5 |
picture |
varchar |
200 |
否 |
||||||
6 |
content |
longtext |
否 |
表3-10 orders
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
orderid |
varchar |
200 |
否 |
||||||
4 |
tablename |
varchar |
200 |
是 |
caipinxinxi |
|||||
5 |
userid |
bigint |
20 |
否 |
||||||
6 |
goodid |
bigint |
20 |
否 |
||||||
7 |
goodname |
varchar |
200 |
是 |
||||||
8 |
picture |
varchar |
200 |
是 |
||||||
9 |
buynumber |
int |
11 |
否 |
||||||
10 |
price |
float |
否 |
0 |
||||||
11 |
discountprice |
float |
是 |
0 |
||||||
12 |
total |
float |
否 |
0 |
||||||
13 |
discounttotal |
float |
是 |
0 |
||||||
14 |
type |
int |
11 |
是 |
1 |
|||||
15 |
status |
varchar |
200 |
是 |
||||||
16 |
address |
varchar |
200 |
是 |
||||||
17 |
tel |
varchar |
200 |
是 |
||||||
18 |
consignee |
varchar |
200 |
是 |
||||||
19 |
logistics |
longtext |
是 |
表3-11 storeup
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
userid |
bigint |
20 |
否 |
||||||
4 |
refid |
bigint |
20 |
是 |
||||||
5 |
tablename |
varchar |
200 |
是 |
||||||
6 |
name |
varchar |
200 |
否 |
||||||
7 |
picture |
varchar |
200 |
否 |
||||||
8 |
type |
varchar |
200 |
是 |
1 |
|||||
9 |
inteltype |
varchar |
200 |
是 |
表3-12 token
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
userid |
bigint |
20 |
否 |
||||||
3 |
username |
varchar |
100 |
否 |
||||||
4 |
tablename |
varchar |
100 |
是 |
||||||
5 |
role |
varchar |
100 |
是 |
||||||
6 |
token |
varchar |
200 |
否 |
||||||
7 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
8 |
expiratedtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
表3-13 users
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
username |
varchar |
100 |
否 |
||||||
3 |
password |
varchar |
100 |
否 |
||||||
4 |
role |
varchar |
100 |
是 |
管理员 |
|||||
5 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
表3-14 yonghu
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
外键 |
允许空 |
默认值 |
说明 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
id |
bigint |
20 |
是 |
是 |
否 |
auto_increment |
|||
2 |
addtime |
timestamp |
否 |
CURRENT_TIMESTAMP |
||||||
3 |
yonghuming |
varchar |
200 |
否 |
||||||
4 |
mima |
varchar |
200 |
否 |
||||||
5 |
xingming |
varchar |
200 |
否 |
||||||
6 |
xingbie |
varchar |
200 |
是 |
||||||
7 |
touxiang |
varchar |
200 |
是 |
||||||
8 |
shouji |
varchar |
200 |
是 |
||||||
9 |
money |
float |
是 |
0 |
第4章 系统详细实现
4.1用户登录功能的详细实现
用户登录界面起到验证身份的作用,本界面采用图片背景进行设计。在用户登录界面里设置了程序的名称和用户、密码的文本框。在文本框下是登录、注册按钮。用户在信息输入完成后可以使用这两个按钮进行相对应的操作。用户登录功能的实现界面如下图4-1所示:
图4-1用户登录实现界面
4.2管理员权限的功能实现
4.2.1用户信息管理功能的详细实现
管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员查询用户信息的功能实现如下图4-2所示:
图4-2管理员查询用户信息的实现界面
4.2.2菜品管理功能的详细实现
管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。管理员添加菜品信息的实现界面如下图4-3所示:
图4-3管理员添加菜品信息的实现界面
4.2.3餐桌管理功能的详细实现
本功能包括查询餐桌,也可以发布新的餐桌信息。查询餐桌信息的实现详情如下图4-4所示:
图4-4查询餐桌功能的实现界面
4.2.4餐桌预定管理功能的详细实现
管理员可以查询已预定的餐桌,并进行审核。餐桌预定功能的实现界面如下图4-5所示:
图4-5餐桌预定功能的实现界面
4.2.5系统管理功能的详细实现
管理员可以管理公告和系统的轮播图,可以安排活动。查询公告功能的实现界面如下图4-6所示:
图4-6查询公告功能的实现界面
4.2.6个人中心管理功能的详细实现
管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员个人信息修改的实现界面如下图4-7所示:
图4-7个人中心管理功能的实现界面
4.2.7订单管理功能的详细实现
管理员可以查询用户的订单,并完成菜品的安排,实现界面如下图4-8所示:
图4-8订单查询功能的实现界面
4.3用户权限的功能详细实现
4.3.1用户信息管理功能的详细界面实现
当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户信息管理的实现界面如下图4-9所示:
图4-9用户信息管理功能的运行界面
4.3.2菜品展示功能的详细实现
用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。用户浏览菜品的界面实现如下图4-10所示:
图4-10菜品信息浏览功能的运行界面
4.3.3点餐功能的详细实现
在本功能里用户可以进行点餐。点餐功能的实现界面如下图4-11所示:
图4-11点餐功能的运行界面
4.3.4预定餐桌功能的详细实现
用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定,预定餐桌功能的实现界面如下图4-12所示:
图4-12预定餐桌功能的实现界面
4.3.5购物车功能的实现
用户可以管理购物车里的菜品,实现界面如下图4-13所示:
图4-13购物车管理功能的实现界面
4.3.6订单管理功能的详细实现
用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。订单管理功能的实现界面如下图4-14所示:
图4-14订单管理功能的实现界面