餐厅业务运营管理系统大数据库设计.docx
《餐厅业务运营管理系统大数据库设计.docx》由会员分享,可在线阅读,更多相关《餐厅业务运营管理系统大数据库设计.docx(27页珍藏版)》请在冰豆网上搜索。
餐厅业务运营管理系统大数据库设计
餐厅业务运营管理系统数据库设计
我国的饮食文化源远流长,随着我国经济的迅速发展和人民生活水平的不断提高,各类餐厅出现在大街小巷,而餐饮业的竞争也愈来愈激烈。
要想在竞争中取得优势,必须在经营管理、产品服务等方面提高服务管理意识。
而对餐厅的经营状况起重要作用的是运营管理。
如何利用先进的管理手段,提高餐厅的管理水平,是每一位管理者所面临的重要课题。
简单的服务标准已经不是制胜的锦囊,只有做到最细微之处才有机会让顾客体会到服务的优点,而精准、快捷、周全往往就是最基本的成功要素。
面对着庞大的信息量,传统的人工方式导致餐馆管理上有许多不足,人力与物力过多浪费,餐馆管理费用增加。
因此,采用全新的计算机网络和管理系统,将成为提高餐厅的管理效率,改善服务水准的重要手段之一。
数据库的应用极大地方便了信息管理,为管理人员决策和资源的合理利用提供了数据支持。
本论文将对餐厅的运营管理进行数据库的设计,以求方便餐厅运营,为之提高效益,科学管理做出贡献。
一、数据库系统需求设计
1、餐厅业务运营管理系统主要是根据食客的订单信息分析菜品的受欢迎程度,以便适时调整采购计划,合理利用厨房资源,同时根据厨房食材使用情况提供采购信息,以根据菜单支付信息提供收支情况。
该系统设计的数据有:
账单数据。
采购清单数据。
该系统的处理需求如下:
查询菜品的点击次数。
查询原材料的使用情况。
查询原材料的采购情况。
查询不同菜品收支情况。
2、数据流程图
根据餐厅的实际管理过程和各种操作,由了解到的业务,画出业务流程图,本系统的业务流程图如下所示
订单记录本
订单菜单
发
票订货物需求
单
购货发票购货单
账单描述
收入描述
第一层数据流程图
订单处理
采购记录本
购货单
购
货
单
购货发票
购货清单处理
购货发票
订
单
结算结算数据
数据
收入描述
账单描述
开具发票
菜单菜单
消耗
数据
购货
需求
菜单处理
购货需求决策数据
订
货
单
采购处理
3、数据字典
数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典在数据库设计中占有很重要的地位。
数据字典通常包括数据项、数据结构、数据存储、数据流和处理过程5个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
3.1数据项是不可在分的数据单位。
下面定义了系统需要的数据项:
数据项
数据项名
数据类型
长度
值域范围
是否非空
菜名
varchar
20
N
菜价
varchar
10
N
菜号
varchar
5
N
需求菜号
varcha
5
N
需求菜名
varchar
20
N
需求数量
varchar
5
N
采购单价
varchar
5
N
订单号
varchar
10
N
发票号
varchar
10
N
顾客号
varchar
10
N
顾客名
varchar
20
N
厨师号
varchar
4
N
厨师名
varchar
20
N
主管号
varchar
1
N
主管名
varchar
20
N
日期
datetime
10
N
3.2数据结构反映了数据之间的组合关系,。
一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。
对数据结构的描述通常包括数据结构名、含义等。
数据结构
编号:
1名称:
定单别名:
菜单名
简述:
客人点菜的清单
组成:
顾客号,订单号,菜号,菜名,菜价,数量,日期
编号:
2名称:
采购单
简述:
需要购买的菜的种类及数量
组成:
需求菜名,需求数量,购货单号,日期
编号:
3名称:
进货记录本
简述:
已购进的菜等原料的种类,数量,价格及款项,日期
组成:
采购菜名,采购数量,采购单价,货款,日期
编号:
4名称:
发票
简述:
客人付款的凭证
组成:
发票编号,菜号,菜名,菜价,数量,日期
3.3数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
他可以是手工文档或手工凭单,也可以是计算机文档。
数据存储
编号:
1名称:
定单记录本别名:
简述:
定单中需要的输入信息
组成:
菜号,菜名,菜价,日期
关键字:
菜号
相关处理:
将上述信息输入数据库
记录长度:
记录数:
数据量:
数据存储
编号:
2名称:
采购记录本别名:
采购单
简述:
需要采购的菜等原料的种类及数量
组成:
需求菜号,需求菜名,需求数量,日期
关键字:
需求菜号
相关处理:
将上述信息输入数据库
记录长度:
记录数:
数据量:
数据存储
编号:
3名称:
进货记录本别名:
进货账单
简述:
已购进的菜等原料的种类,数量,价格及款项,日期
组成:
采购菜名,采购数量,采购单价,货款,日期
关键字:
采购菜名,采购数量
相关处理:
记录长度:
记录数:
数据量:
数据存储
编号:
4名称:
发票记录本别名:
收入账单
简述:
登记客人消费的单据
组成:
发票编号,菜名,数量,收到款项,日期
关键字:
发票编号
相关处理:
记录长度:
记录数:
数据量:
3.4数据流是数据结构在系统内传输的路径。
对数据流的描述通常包括以下内容:
数据流名、说明、数据流来源、数据流去向、组成等。
数据流
编号:
1名称:
订单流别名:
简述:
定单中需要的输入信息,一支给厨房做菜,一支给财务登记结算
组成:
菜号,菜名,菜价,数量
若为数据流
来源:
顾客
去向:
登记处理,财务处理
峰值流量:
数据流
编号:
2名称:
菜单流别名:
简述:
厨房所收到的菜单信息
组成:
菜号,菜名,数量
若为数据流
来源:
订单处理
去向:
厨房制作
峰值流量:
数据流
编号:
3名称:
货物需求流别名:
简述:
厨房给主管发出的需求资源信息
组成:
需求菜名,需求数量
若为数据流
来源:
厨房
去向:
主管
峰值流量:
数据流
编号:
4名称:
购货信息流别名:
简述:
主管给采购的采购信息
组成:
需求菜名,需求数量
若为数据流
来源:
主管
去向:
采购
峰值流量:
数据流
编号:
5名称:
已购清单别名:
简述:
采购回的帐单给财务处登记
组成:
采购菜名,采购数量,采购单价,货款
若为数据流
来源:
采购
去向:
财务处理
峰值流量:
数据流
编号:
6名称:
结算付帐别名:
简述:
客人支付账款
组成:
应交帐款
若为数据流
来源:
顾客
去向:
财务处理
峰值流量:
数据流
编号:
7名称:
发票信息别名:
简述:
财务处给顾客的结算凭证
组成:
发票编号,菜号,价格,数量,日期
若为数据流
来源:
财务处理
去向:
顾客
峰值流量:
3.5处理过程的具体处理逻辑一般是用判定表或判定树来描述。
数据字典中只需要描述处理过程的说明信息,通常包括处理过程编号、名称、说明、输入数据流、输出数据流、处理等。
处理
编号:
1名称:
订单处理
输入信息:
顾客点菜的菜名,菜号,菜价
数据存储:
菜名,菜号,菜价
输出信息:
厨房做菜信息,财务结算信息激发条件:
简要说明:
加工逻辑:
出错处理:
执行频率:
处理
编号:
2名称:
厨房需求处理
输入信息:
厨房所制作的菜的种类及数量
数据存储:
菜名,数量
输出信息:
原料缺少信息激发条件:
简要说明:
由材料使用情况厨房需要的原材料并发出求购信息
加工逻辑:
出错处理:
执行频率:
处理
编号:
3名称:
购货需求处理
输入信息:
需要购入的菜的种类,数量
数据存储:
需求菜名,需求数量
输出信息:
采购信息激发条件:
简要说明:
加工逻辑:
出错处理:
执行频率:
处理
编号:
4名称:
购货清单处理
输入信息:
购货凭证中的内容
数据存储:
采购菜名,采购数量,采购单价,货款
输出信息:
所采购的原材料的信息和资金使用情况激发条件:
简要说明:
加工逻辑:
出错处理:
执行频率:
处理
编号:
5名称:
财务处理
输入信息:
菜单信息,采购信息,客户结算信息
数据存储:
菜名,菜价,应收款,采购菜价,数量,单价,应付款,发票编号
输出信息:
收入信息,采购支出信息激发条件:
简要说明:
加工逻辑:
出错处理:
执行频率:
二、数据库概念模型设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。
它是整个数据库设计的关键。
1、E-R模型
实体描述
三、数据库逻辑模型设计
概念结构是独立于任何一种数据模型的信息结构。
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与所选用的DBMS产品所支持的数据模型想符合的逻辑结构。
E-R图转换的关系模型
1.顾客(顾客号,订单号)
主键:
顾客号
函数依赖关系F:
顾客号订单号
关系中不存在非主属性对候选键的部分与传递函数依赖,故“顾客”关系是第三范式。
2.订单(订单号,顾客号,日期)
主键:
订单号
函数依赖关系F:
订单号{顾客号,日期}
关系中不存在非主属性对候选键的部分与传递函数依赖,故“订单”关系是第三范式。
3.发票(发票号,订单号,日期)
主键:
发票号
函数依赖关系F:
发票号{订单号,日期}
关系中不存在非主属性对候选键的部分与传递函数依赖,故“发票”关系是第三范式。
4.菜品(菜号,菜名,价格)
主键:
菜号
函数依赖关系F:
菜号{菜名,价格}
关系中不存在非主属性对候选键的部分与传递函数依赖,故“菜品”关系是第三范式。
5.订购(订单号,菜号,数量)
主键:
订单号+菜号
函数依赖关系F:
{订单号,菜号}数量
关系中不存在非主属性对候选键的部分与传递函数依赖,故“订购”关系是第三范式。
6.厨师(厨师号,厨师名,主管号)
主键:
厨师号
函数依赖关系F:
厨师号厨师名
关系中不存在非主属性对候选键的部分与传递函数依赖,故“厨师”关系是第三范式。
7.制作(菜号,厨师号)
主键:
菜号+厨师号
关系中不存在非主属性对候选键的部分与传递函数依赖,故“制作”关系是第三范式。
8.主管(主管号,主管名)
主键:
主管号
函数依赖关系F:
主管号主管名
关系中不存在非主属性对候选键的部分与传递函数依赖,故“主管”关系是第三范式。
9.订货单(订货单号,主管号,日期)
主键:
订货单号
函数依赖关系F:
订货单号{主管号,日期}
关系中不存在非主属性对候选键的部分与传递函数依赖,故“订货单”关系是第三范式。
10.货物(货号,订货单号,货名,价格,数量)
主键:
货号
函数依赖关系F:
货号{订货单号,货名,价格,数量}
关系中不存在非主属性对候选键的部分与传递函数依赖,故“货物”关系是第三范式。
11.消耗(菜号,货号,用量)
主键:
菜号+货号
函数依赖关系F:
{菜号,货号}用量
关系中不存在非主属性对候选键的部分与传递函数依赖,故“采购”关系是第三范式。
四、数据库物理模型的实现
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
名称
类型
长度
是否非空
主关键字
备注
主管号
varchar
6
N
Y
主管名
varchar
20
N
N
名称
类型
长度
是否非空
主关键字
备注
发票号
varchar
10
N
Y
订单名
varchar
10
N
N
日期
datetime
8
N
N
名称
类型
长度
是否非空
主关键字
备注
菜号
varchar
5
N
Y
厨师号
varchar
4
N
Y
名称
类型
长度
是否非空
主关键字
备注
菜号
varchar
5
N
Y
菜名
varchar
20
N
N
价格
varchar
5
N
N
名称
类型
长度
是否非空
主关键字
备注
厨师号
varchar
5
N
Y
厨师名
varchar
4
N
N
主管号
varchar
1
N
N
名称
类型
长度
是否非空
主关键字
备注
菜号
varchar
5
N
Y
货号
varchar
5
N
Y
用量
datetime
5
N
N
名称
类型
长度
是否非空
主关键字
备注
订单号
varchar
10
N
Y
顾客号
varchar
20
N
N
日期
datetime
8
N
N
名称
类型
长度
是否非空
主关键字
备注
订货单号号
varchar
10
N
Y
主管号
varchar
1
N
N
日期
datetime
8
N
N
名称
类型
长度
是否非空
主关键字
备注
订单号
varchar
10
N
Y
菜号
varchar
5
N
Y
数量
varchar
5
N
N
名称
类型
长度
是否非空
主关键字
备注
顾客号
varchar
10
N
Y
顾客名
varchar
20
N
Y
名称
类型
长度
是否非空
主关键字
备注
货号
varchar
5
N
Y
货名
varchar
20
N
N
订货单号
varchar
10
N
N
五、建立数据库:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[主管]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[主管]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[制作]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[制作]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[厨师]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[厨师]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[发票]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[发票]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[消耗]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[消耗]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[菜品]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[菜品]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[订单]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[订单]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[订货单]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[订货单]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[订购]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[订购]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[货物]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[货物]
GO
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[顾客]')andOBJECTPROPERTY(id,N'IsUserTable')=1)
droptable[dbo].[顾客]
GO
CREATETABLE[dbo].[主管](
[主管号][varchar]
(1)COLLATEChinese_PRC_CI_ASNOTNULL,
[主管名][varchar](20)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[制作](
[菜号][varchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[厨师号][varchar](4)COLLATEChinese_PRC_CI_ASNOTNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[厨师](
[厨师号][varchar](4)COLLATEChinese_PRC_CI_ASNOTNULL,
[厨师名][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[主管号][varchar]
(1)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[发票](
[发票号][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[订单号][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[日期][datetime]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[消耗](
[菜号][varchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[货号][varchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[用量][varchar](5)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[菜品](
[菜号][varchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[菜名][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[价格][varchar](5)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[订单](
[订单号][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[顾客号][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[日期][datetime]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[订货单](
[订货单号][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[主管号][varchar]
(1)COLLATEChinese_PRC_CI_ASNULL,
[日期][datetime]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[订购](
[订单号][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[菜号][varchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,
[数量][varchar](5)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[货物](
[货号][varchar](5)COLLATEChinese_PRC_CI_ASNOTNULL,