SQL数据库期末作业餐饮管理系统Word格式文档下载.docx
《SQL数据库期末作业餐饮管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SQL数据库期末作业餐饮管理系统Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
类型、名称、价格
4.预定:
用户编号、日期、预定时间、客户姓名、预定食谱、桌号
5桌台管理:
桌号、使用情况、
6•点餐管理:
用户编号、类型、菜品、数量、价格
7.盈利管理:
日期、店内收入、外卖收入、盈利额度
各对象之间的联系图:
主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。
主要存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,
主要用于客户订餐、充值和结算,使用于添加预定
桌台表E-R图
食谱表E-R图
餐,使用于添加预定
预定E-R图
主要存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。
主要存储每日收入流水,用于统计财务收入
3.数据表的设计
1、user(用户员工表)
表3.1user
字段名称
字段描述
字段类型
备注
user_id
用户编号
INT(11)
不允许空
Pwd
用户密码
VARCHAR45)
Name
用户姓名
Tel
用户电话
Money
收款金额
允许空
用户表主要用于存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息来记录经手的用户,字段money用于记录用户的收款金额,便于结算时对收款现金的核对。
2、customer(客户表)
表3.2customer
客户姓名
Id
客户编号
客户密码
Addtime
添加时间
账户余额
usedmoney
已用金额
客户电话
Userid
客户表主要用于存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,主要用于客户订餐、充值和结算,字段money用于储存账户余额,在使用充值和账户余额支付时会使用到它。
字段usedmoney用于记录客户的消费情况,为客户打折时会使用到它。
3、food(食谱表)
表3.3food
Foodid
食物编号
不允许为空
foodname
食谱名称
Price
价格
食谱表主要用于存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加预定。
字段Price记录的是食物的价格。
当客户预定餐点时,系统使用它来算费用。
4、Order(点餐表)
表3.3Order
Tableid
桌号
People
人数
菜品名称
Amount
数量
Date
日期
5、YuDing(预定表)
表3.4YuDing
DATETIME
Time
预定时间
Food
菜单号
消费金额
预定表主要用于存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。
当系统预定餐点时,会从其他各表中调出需要的信息,经过计算和处理后,将最终信息储存到YuDing表,该表和其它各表都有紧密的联系。
6、Yinli(盈利表)
Data
in1
店内收入
in2
外卖收入
out
日支出
yinli
盈利
beizhu
4•数据库创建:
创
Cdrnm&
rts!
ColumnNameDatatypePK.NTJUQBINUNZFAlDefault
■FoodjdINI{11)
QfoodnameVARCHAR(45)
0PrittVARCHAR(45)
食谱表
■;
ARCHAR.H5)
5tytleVARCHAR(45)
l\ameVARCHAR(45)
leiVARCHAR(45)
MonevVARCHAR(45)
用户表
Tat?
leN^me;
yuding
Schema;
test
1皿
3
Colatnn:
SehinaDefault
V
Engine:
InnoDB
Comrents:
ColuiTinNarriEdatatype
PK
NN
UQBIN
UN乎
AlUefdult
0TableFdlN*r[Ll>
◎DateDATFT1ME
—
OTimeVARCHAR[45)
y
一
◎NameVARCMARC45)
_
-
UseidVARCHARTS)
FoodVARCHAR(45)
OMlanefYVARCfriAR^S)
0YudingcolVARCH^RC^5)
.
预定表
桌台表
Colunnnblame
Datatype
Nhl
UQ
BIN
UN
ZF
Default
1MT0
0□
□□□□
Oini
/ARCHAR[45)
□□口
◎in2
/ARCHARTS)
0out
7ARCH^R[45)
r。
yinli
VARCHARTS)
7
‘Ylnlicol
■/arch^rC^S)
treiifiu
VARCfriAR^5)
□
士
—1
u
=——
盈利表
匚ornments:
匚oluiTiriName
NI^L
UQ]
unI
Al
DefiiJt
Illserid
I\IT
0Table!
d
VARCHATi(45)
^ARCHAR^J)
fcjodwE宅
VARCHARK5)
-Price
VARCHAR^S)
V*
*Amount
VAR匚卜1人尺〔叫5)
VAR匚HAR■(专5)
£
=—
点餐表
客户表
六查询
1查询所有顾客及添加时间
SELECTname,addtimeFROMtest.customer;
2.查询当前剩余空桌
SELECTtable_idFROMtest.table_idwherepeople=0;
3.创建存储过程,在客户的账户余额里扣除已点菜品的价格
执行操作前,客户“丁叶”的账户余额为200元
执行操作后,客户“丁叶”的余额变为170元
创建存储过程使客户可对自己的账户进行充值,执行操作前,用户“方兵”的账户余额为100元
操作代码
1、实现余额的扣除:
CREATEDEFINER二'
root'
@'
localhost'
PROCEDURE'
diancai'
(
innamvarchar(45)
)
BEGIN
SET@@autocommit=0;
STARTTRANSACTION;
updatecustomersetmoney二customer.money-(selectmoneyfrom
test.yudingwherename=nam)wherename=nam;
SET@@autocommit=1;
END
2.实现余额的充值
CREATEDEFINER='
chongzhi'
inid_int(11)
updatecustomersetmoney二customer.money+((selecthowmoney
fromtest.chongzhiwhereid=id_)/2)
whereid=id_;
总结
首先感谢帮助过我们的老师同学,现在我们来说说我们的不足吧。
首先我们刚开始不太确定方向,所有系统都想尝试做一下,所以有点耽误时间。
刚开始做的过程中我们对自己做的系统体系结构不太了解,体系都是慢慢逐渐完善的。
刚开始建数据库时,由于对MYSQL这个软件的运用不够熟练,我们不懂得如何导出导入数据库,导致我们做好的表格和数据无法保存,再次打开运行时,导致数据的缺失,一切都要重新来过,浪费了很多时间和精力。
存储过程中也有阻碍,语句的错误,拼写错误,对象引入错误。
但是经过查询课本,网上查找资料以及同学的指导我们找到了错误并加以改正。
在建表时设置主键的不恰当,导致运行程序时出现bug,例如:
在建立预订表的时候,把主键设置为桌号,这意味着每张桌子只能用一次,这对于餐饮管理并不符合实际,所以我们理清思路,加入序号这一个属性,以预订顺序为唯一标识,确立主键。
修改前的预订表
修改后的预订表
参考资料:
《MySQL5.6从零开始学习》,《MySQL权威教程》网页搜索。