1、餐饮业信息管理系统的开发1、本项目的需求分析随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。第一:在员工使用本餐饮信息管理系统应可以实现以下功能:1. 添加修改查询客户会员信息(修改客户信
2、息需客户确认)2. 查询菜单3. 添加查询预定信息4. 客户可以在自己的会员账户里充值5. 顾客可以用现金买单也可以从会员账户里扣取第二:管理员使用本餐饮信息管理系统应可以实现以下功能:1. 添加修改查询客户会员信息(修改客户信息需客户确认)2. 添加修改查询菜单信息3. 添加查询预定信息4. 添加职员信息,权限也可以定为管理员。二、餐饮业管理数据库管理系统的E-R模型(概念结构设计)数据流图1、用户信息编号、密码、类型、姓名、电话、收款金额2.客户信息:用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额3.食谱:类型、名称、价格4.预定:用户编号、日期、预定时间、客户姓名、预定食谱、桌
3、号5 桌台管理:桌号、使用情况、6. 点餐管理:用户编号、类型、菜品、数量、价格7. 盈利管理:日期、店内收入、外卖收入、盈利额度各对象之间的联系图:用户(User)用户编号 用户密码用户姓名名 用 户 编 号 用户电话 用 户 编 号 收款金额用户 E-R 图主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。客户(customer )客户编号客户密码客户姓名 用 户 编 号 添加时间 用 户 编 号 账户余额客户电话用户编号客户表 E-R 图主要存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,主要用于客户订餐、充值和
4、结算,使用于添加预定。桌台(table)可入座人数桌号桌台表 E-R 图主要用于储存餐饮店桌台使用情况,方便来客安排,与预定。食谱(food)食谱名称价格食谱编号食谱表 E-R 图主要存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加预定。 点餐(diancan)(fdiancan)价格消费类型数量 用 户 编 号 点餐表 E-R 图主要储存堂食客人点餐信息,用于记录、统计点餐信息,以及分析菜品的受欢迎程度。用户编号菜品名称预定(YuDing)消费金额客户姓名日期时间用户编号桌号预定餐点预定 E-R 图主要存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主
5、要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。盈利报表日支出金额日期盈利额度店内收入 用 户 编 号 外卖收入主要存储每日收入流水,用于统计财务收入。3.数据表的设计1、 user(用户员工表)表 3.1 user字段名称 字段描述 字段类型 备注user_id 用户编号 INT(11) 不允许空Pwd 用户密码 VARCHAR(45)不允许空Name 用户姓名 VARCHAR(45)不允许空Tel 用户电话 VARCHAR(45)不允许空Money 收款金额 VARCHAR(45)允许空用户表主要用于存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客
6、户和添加预定时会使用到用户信息来记录经手的用户,字段 money 用于记录用户的收款金额,便于结算时对收款现金的核对。2、 customer(客户表)表 3.2 customer字段名称 字段描述 字段类型 备注Name 客户姓名 INT(11) 不允许空Id 客户编号 VARCHAR(45)不允许空Pwd 客户密码 VARCHAR(45)不允许空Addtime 添加时间 VARCHAR(45)不允许空Money 账户余额 VARCHAR(45)不允许空usedmoney 已用金额 VARCHAR(45)不允许空Tel 客户电话 VARCHAR(45)允许空Userid 用户编号 VARCHA
7、R(45)不允许空客户表主要用于存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,主要用于客户订餐、充值和结算,字段 money 用于储存账户余额,在使用充值和账户余额支付时会使用到它。字段 usedmoney 用于记录客户的消费情况,为客户打折时会使用到它。3、 food (食谱表)表 3.3 food字段名称 字段描述 字段类型 备注Food_id 食物编号 INT(11) 不允许为空foodname 食谱名称 VARCHAR(45)不允许空Price 价格 VARCHAR(45)不允许空食谱表主要用于存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加
8、预定。字段 Price 记录的是食物的价格。当客户预定餐点时,系统使用它来算费用。4、 Order(点餐表)表 3.3 Order 字段名称 字段描述 字段类型 备注Userid 用户编号 INT(11) 不允许空Tableid 桌号 VARCHAR(45)不允许空People 人数 VARCHAR(45)不允许空foodname 菜品名称 VARCHAR(45)不允许空Price 价格 VARCHAR(45)不允许空Amount 数量 VARCHAR(45)不允许空Date 日期 VARCHAR(45)不允许空5、 YuDing(预定表)表 3.4 YuDing字段名称 字段描述 字段类型
9、备注Tableid 桌号 INT(11) 不允许空Date 日期 DATETIME 不允许空Time 预定时间 VARCHAR(45)不允许空Name 客户姓名 VARCHAR(45)不允许空Userid 用户编号 VARCHAR(45)不允许空Food 菜单号 VARCHAR(45)不允许空Money 消费金额 VARCHAR(45)不允许空预定表主要用于存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。当系统预定餐点时,会从其他各表中调出需要的信息,经过计算和处理后,将最终信息储存到 YuDing 表,该表和其它各表
10、都有紧密的联系。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 FRO
11、M test.table_id where people=0;3创建存储过程,在客户的账户余额里扣除已点菜品的价格执行操作前,客户“丁叶”的账户余额为 200 元执行操作后,客户“丁叶”的余额变为 170 元创建存储过程使客户可对自己的账户进行充值,执行操作前,用户“方兵”的账户余额为 100 元执行操作后,用户“方兵”成功充值 100 元操作代码1、 实现余额的扣除:CREATE DEFINER=rootlocalhost PROCEDURE diancai(in nam varchar(45)BEGINSET autocommit = 0;START TRANSACTION;update
12、customer set money=customer.money-(select money from test.yuding where name=nam) where name=nam;SET autocommit = 1;END2实现余额的充值CREATE DEFINER=rootlocalhost PROCEDURE chongzhi(in id_ int(11)BEGINSET autocommit = 1;START TRANSACTION;update customer set money=customer.money+(select howmoney from test.ch
13、ongzhi where id=id_)/2) where id=id_;END总结首先感谢帮助过我们的老师同学,现在我们来说说我们的不足吧。首先我们刚开始不太确定方向,所有系统都想尝试做一下,所以有点耽误时间。刚开始做的过程中我们对自己做的系统体系结构不太了解,体系都是慢慢逐渐完善的。刚开始建数据库时,由于对 MYSQL 这个软件的运用不够熟练,我们不懂得如何导出导入数据库,导致我们做好的表格和数据无法保存,再次打开运行时,导致数据的缺失,一切都要重新来过,浪费了很多时间和精力。存储过程中也有阻碍,语句的错误,拼写错误,对象引入错误。但是经过查询课本,网上查找资料以及同学的指导我们找到了错误并加以改正。 在建表时设置主键的不恰当,导致运行程序时出现 bug,例如:在建立预订表的时候,把主键设置为桌号,这意味着每张桌子只能用一次,这对于餐饮管理并不符合实际,所以我们理清思路,加入序号这一个属性,以预订顺序为唯一标识,确立主键。修改前的预订表修改后的预订表参考资料:MySQL5.6 从零开始学习 , MySQL 权威教程网页搜索。