当前位置:文档之家› SQL数据库期末作业。餐饮管理系统

SQL数据库期末作业。餐饮管理系统

《餐饮业信息管理系统的开发》
1、本项目的需求分析
随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。

高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。

为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。

不同的设计从而达到不同的功能,实现信息的有效传达与管理。

第一:在员工使用本餐饮信息管理系统应可以实现以下功能:
1.添加修改查询客户会员信息(修改客户信息需客户确认)
2.查询菜单
3.添加查询预定信息
4.客户可以在自己的会员账户里充值
5.顾客可以用现金买单也可以从会员账户里扣取
第二:管理员使用本餐饮信息管理系统应可以实现以下功能:
1.添加修改查询客户会员信息(修改客户信息需客户确认)
2.添加修改查询菜单信息
3.添加查询预定信息
4.添加职员信息,权限也可以定为管理员。

二、餐饮业管理数据库管理系统的E-R模型(概念结构设计)
数据流图
1、用户信息
编号、密码、类型、姓名、电话、收款金额
2.客户信息:
用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额3.食谱:
类型、名称、价格
4.预定:
用户编号、日期、预定时间、客户姓名、预定食谱、桌号5桌台管理:
桌号、使用情况、
6.点餐管理:
用户编号、类型、菜品、数量、价格
7.盈利管理:
日期、店内收入、外卖收入、盈利额度
各对象之间的联系图:
用户E-R图
主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

客户表E-R图
主要存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,
主要用于客户订餐、充值和结算,使用于添加预定。

桌台表E-R图
主要用于储存餐饮店桌台使用情况,方便来客安排,与预定。

食谱表E-R图
主要存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加预定。

点餐表E-R图
主要储存堂食客人点餐信息,用于记录、统计点餐信息,以及分析菜品的受欢迎程度。

预定E-R图
主要存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。

主要存储每日收入流水,用于统计财务收入。

3.数据表的设计
1、user(用户员工表)
用户表主要用于存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息来记录经手的用户,字段money用于记录用户的收款金额,便于结算时对收款现金的核对。

2、customer(客户表)
客户表主要用于存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,主要用于客户订餐、充值和结算,字段money用于储存账户余额,在使用充值和账户余额支付时会使用到它。

字段usedmoney用于记录客户的消费情况,为客户打折时会使用到它。

3、food (食谱表)
食谱表主要用于存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加预定。

字段Price记录的是食物的价格。

当客户预定餐点时,系统使用它来算费用。

4、Order(点餐表)
表3.3 Order
5、YuDing(预定表)
Money 消费金额VARCHAR(45)不允许空
预定表主要用于存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。

当系统预定餐点时,会从其他各表中调出需要的信息,经过计算和处理后,将最终信息储存到YuDing表,该表和其它各表都有紧密的联系。

6、Yinli (盈利表)
表3.3 food
字段名称字段描述字段类型备注
Data 日期INT(11)不允许空
in1 店内收入VARCHAR(45)允许空
in2 外卖收入VARCHAR(45)允许空
out 日支出VARCHAR(45)允许空
yinli 盈利VARCHAR(45)允许空
beizhu 备注VARCHAR(45)允许空
4.数据库创建:
创建表
食谱表
用户表预定表
桌台表
盈利表
点餐表
客户表
六查询
1.查询所有顾客及添加时间
SELECT name ,addtime FROM test.customer;
2.查询当前剩余空桌
SELECT table_id FROM test.table_id where people=0;
3.创建存储过程,在客户的账户余额里扣除已点菜品的价格
执行操作前,客户“丁叶”的账户余额为200元执行操作后,客户“丁叶”的余额变为170元
创建存储过程使客户可对自己的账户进行充值,执行操作前,用户“方兵”的账户余额为100元
执行操作后,用户“方兵”成功充值100元
操作代码
1、实现余额的扣除:
CREATE DEFINER=`root`@`localhost` PROCEDURE `diancai`(
in nam varchar(45)
)
BEGIN
SET @@autocommit = 0;
START TRANSACTION;
update customer set money=customer.money-(select money from test.yuding where name=nam) where name=nam;
SET @@autocommit = 1;
END
2.实现余额的充值
CREATE DEFINER=`root`@`localhost` PROCEDURE `chongzhi`( in id_ int(11)
)
BEGIN
SET @@autocommit = 1;
START TRANSACTION;
update customer set money=customer.money+((select howmoney from test.chongzhi where id=id_)/2)
where id=id_;
END
总结
首先感谢帮助过我们的老师同学,现在我们来说说我们的不足吧。

首先我们刚开始不太确定方向,所有系统都想尝试做一下,所以有点耽误时间。

刚开始做的过程中我们对自己做的系统体系结构不太了解,体系都是慢慢逐渐完善的。

刚开始建数据库时,由于对MYSQL这个软件的运用不够熟练,我们不懂得如何导出导入数据库,导致我们做好的表格和数据无法保存,再次打开运行时,导致数据的缺失,一切都要重新来过,浪费了很多时间和精力。

存储过程中也有阻碍,语句的错误,拼写错误,对象引入错误。

但是经过查询课本,网上查找资料以及同学的指导我们找到了错误并加以改正。

在建表时设置主键的不恰当,导致运行程序时出现bug,例如:在建立预订表的时候,把主键设置为桌号,这意味着每张桌子只能用一次,这对于餐饮管理并不符合实际,所以我们理清思路,加入序号这一个属性,以预订顺序为唯一标识,确立主键。

修改前的预订表
修改后的预订表
参考资料:《MySQL5.6从零开始学习》,《MySQL权威教程》网页搜索。

相关主题