数据库课程设计餐饮下单管理系统Word文件下载.docx
- 文档编号:21853498
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:38
- 大小:426.48KB
数据库课程设计餐饮下单管理系统Word文件下载.docx
《数据库课程设计餐饮下单管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计餐饮下单管理系统Word文件下载.docx(38页珍藏版)》请在冰豆网上搜索。
◎员工管理需要的数据:
●员工档案:
包括工号、姓名、性别、工资
◎顾客管理需要的数据:
●顾客档案:
包括编号、姓名、性别等。
◎消费记录管理需要的数据有:
●消费信息:
订单编号、消费金额、折扣后金额、结账时间
2.2事务需求
v数据录入
●录入顾客信息
●录入餐桌信息
●录入员工信息
●录入菜品信息
v数据更新/删除
●更新/删除餐桌信息
●更新/删除菜谱菜品信息
●更新/删除员工信息
●更新/删除顾客信息
●更新/删除订单菜品信息
v数据查询
●查询可用餐桌信息
●查询在售菜品信息
●查询订单信息
●查询顾客点菜信息
●查询员工信息
●查询顾客消费信息
2.3数据流
(1)顶层数据流
负责
(2)第一层数据流
菜谱
就位生成账单
(3)第二层数据流
点菜业务
申请变更
反馈变更
加菜、减菜
点菜业务
2.4数据字典
1)数据项
Foodtable(餐桌)数据项
属性
存储代码
类型
长度
餐桌号
Foodtableno
varchar
10
座位数
seatingno
int
使用状态
Foodtablestate
Menus(菜谱)数据项
编号
Dishno
名称
Dishname
类别
Dishclass
价格
Dishprice
float
Worker(员工)数据项
工号
Workerno
姓名
Workername
性别
Workersex
4
年龄
Workerage
工资
Workersalary
Customer(顾客)数据项
Customerno
Customername
Customersex
联系方式
Customerphoneno
20
Oder(订单)数据项
Oderno
顾客编号
消费时间
consumetime
datetime
餐桌编号
服务员编号
Menus_Oder(点菜)数据项
菜品编号
菜品名称
Disnname
菜品数量
Dish_amount
Discount_rules(折扣规则)数据项
消费金额
Consumption
折扣
Discount
Sales_bill(消费账单)数据项
折扣后金额
after_discount
账单时间
Billtime
2)数据结构
数据结构名
1
餐桌信息
餐桌号、座位数、使用状态
2
菜谱
编号、名称、类别、价格
3
员工信息
工号、姓名、性别、年龄、工资
顾客信息
编号、姓名、性别、联系方式
5
订单信息
订单编号、顾客编号、消费时间、餐桌编号、服务员编号
6
点菜
订单编号、菜品编号、菜品名称、菜品数量
7
折扣规则
消费金额、折扣
8
消费账单
订单编号、消费金额、折扣后金额、账单时间
3)数据流
编号数据流名输入输出
1菜品信息修改菜品菜谱
2空闲餐桌选择餐桌订单
3点菜信息加菜退菜点菜
4记入账单订单结账
5结账折扣方式结账
4)数据存储
编号数据存储名输入输出
1顾客信息更新顾客新信息顾客信息
2菜谱更新新增菜品菜谱
3订单储存订单订单信息
4餐桌更新新增餐桌餐桌
5账单存储消费信息账单记录
5)处理过程
编号处理过程名输入数据流输出数据流
1顾客点菜菜谱订单
2结账订单账单记录
3.数据库结构设计
3.1概念设计
3.1.1分E-R图的建立
(1)订单形成过程
(2)结账形成过程
3.1.2整体E-R图
3.2逻辑设计
3.2.1E-R图向关系模型的转换
A.转换规则
一个实体型转换成一个关系模型。
实体的属性就是关系的属性,实体的码就是关系的码。
实体型间的联系常有如下不同的情况:
a.一个1:
1联系可以转换为一个独立的关系模式,也可以任意一端对应的关系模式合并。
b.一个1:
n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。
c.一个m:
n联系转换成一个关系模式。
d.3或3个以上实体间的一个多联系可以转换成一个关系模式。
e.具有相同码的关系模式可合并。
B.根据以上规则得到如下关系模型(下划线的属性为主码)
菜谱(菜品编号,菜品名称,菜品类别,菜品价格)
顾客(顾客编号,姓名,性别,年龄,联系方式)
餐桌(餐桌号,座位数,使用状态)
员工(工号,姓名,性别,年龄,工资)
订单(订单编号,顾客编号,消费时间,餐桌编号,服务员编号)
菜谱_订单(订单编号,菜品编号,菜品名称,菜品数量)
消费记录(订单号,消费金额,折扣后金额,账单时间)
折扣规则(消费金额,折扣)
3.2.2优化处理
1)确定数据依赖。
2)对各个关系模式间的数据依赖进行极小化分析,减小冗余。
3)按照数据依赖的理论对关系模式进行分析,看是否存在部分函数依赖或函数传递或多值依赖等,确保各关系模式满足第三范式。
4)按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。
5)对关系模式进行必要的分解,分析对于这样的应用环境这些模式是否合适,确定是否要对某些模式进行合并或分解。
3.2.3用户子模式建立
描述
插入新顾客信息
若是新顾客,则插入顾客的信息,姓名,性别等
下单就位
顾客来餐,下订单,分配餐桌
存储顾客所点的菜品
删除菜品
删除顾客所点的某菜品
修改菜品数量
修改顾客所点的某菜品的数量
查询顾客点菜信息
查询顾客所点的菜品
消费总额
计算顾客本次消费的总额。
顾客支付完账单时,把消费信息存档到消费记录中
结账后更改餐桌状态
当顾客结账后,把餐桌状态改为“空”
删除菜谱中菜品
删除菜谱中存在的某菜品
修改菜品价格
修改菜谱中某菜品的价格
向菜谱添加菜品
向菜谱添加新菜品
trig_discount
触发器,顾客进行结账时,消费金额在不同的区间会有不同的折扣。
trig_Sales_bill
触发器,当消费金额达到一定额数时,会送相应优惠券
trig_Menus
触发器,当向菜谱添加新菜品,若该菜品名称含有“红”字,会发出“此后生意必定红红火火”的祝福语。
4.数据库物理设计
数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖于选定的数据库管理系统,为一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构过程,就是数据库的物理设计。
这一阶段主要任务时确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程。
4.1存储过程
存储过程可以实现数据库操作的增删改功能,在执行时需要调用。
御用像函数一样,也可以有参数的参与。
定义存储过程提供了过程封装的效果,执行只需要调用,在更大程度上简化了数据处理过程。
餐饮管理具体存储过程名称和作用详见3.2.3,具体代码详见第5.2.1部分
4.2触发器
餐饮管理具体触发器的名称和作用详见3.2.3,具体代码详见第5.2.1部分
5.数据库的实施
5.1在SQL中数据库实施
5.1.1数据库及数据库对象的建立
createdatabaseRestaurant_Management
---------建表--------------------------------------------------
createtableMenus
--菜谱
(Dishnovarchar(10)primarykey,
Dishnamevarchar(10),
Dishclassvarchar(10),
Dishpricefloat,
)
createtableCustomer
--顾客
(Customernovarchar(10)primarykey,
Customernamevarchar(10)notnull,
Customersexvarchar(4)check(Customersex='
男'
orCustomersex='
女'
)notnull,
Customerphonenovarchar(20)uniquenotnull,
createtableFoodtable
--餐桌
(Foodtablenovarchar(10)primarykey,
seatingnointnotnull,
Foodtablestatevarchar(6)check(Foodtablestate='
空'
orFoodtablestate='
有人'
),
droptableOder
createtableOder
--订单
(Odernovarchar(10)primarykey,
Customernovarchar(10)notnull,
consumetimedatetimenotnull,
Foodtablenovarchar(10)notnull,
Workernovarchar(10)notnull,
foreignkey(Customerno)referencesCustomer(Customerno),
foreignkey(Foodtableno)referencesFoodtable(Foodtableno),
foreignkey(Workerno)referencesWorker(Workerno),
createtableWorker
--员工
(Workernovarchar(10)primarykey,
Workernamevarchar(10),
Workersexvarchar(4)check(Workersex='
orWorkersex='
Workerageint,
Workersalaryint,
droptableMenus_Oder
createtableMenus_Oder
--点菜
(Odernovarchar(10),
Dishnovarchar(10),
Disnnamevarchar(10),
Dish_amountintnotnull,
Primarykey(Dishno,Oderno),
foreignkey(Dishno)referencesMenus(Dishno),
foreignkey(Oderno)referencesOder(Oderno),
droptableSales_bill
createtableSales_bill
--销售账单
(
Odernovarchar(10)primarykey,
Consumptionfloat,
after_discountfloat,
Billtimedatetime,
foreignkey(Oderno)referencesOder(Oderno)
droptableDiscount_rules
createtableDiscount_rules
--折扣规则
(Consumptionfloatprimarykey,
Discountfloat,
5.1.2数据入库
本系统采用将数据逐条录入的方法。
5.2数据库测试
5.2.1对建立的数据库及数据库对象进行测试
(1)存储过程
------------------------插入新顾客信息---------------
dropprocedure插入新顾客信息
createprocedure插入新顾客信息
(@Customernovarchar(10),
@Customernamevarchar(10),
@Customersexvarchar(4),
@Customerphonenovarchar(20)
)
as
insert
intoCustomer
values(@Customerno,@Customername,@Customersex,@Customerphoneno)
select*fromCustomer
----------------验证-----------------------------------
execute插入新顾客信息'
112699'
'
李阳'
'
----------------下单就位-----------
dropprocedure下单就位
createprocedure下单就位
(@Odernovarchar(10),
@Customernovarchar(10),
@consumetimedatetime,
@Foodtablenovarchar(10),
@Wokernovarchar(10)
as
begintransaction--开始事务
intoOder
values(@Oderno,@Customerno,@consumetime,@Foodtableno,@Wokerno)
if((selectFoodtablestatefromFoodtablewhereFoodtableno=@Foodtableno)<
>
begin
print'
该餐桌有人,请重选餐桌。
Rollbacktran
return
end
else
begin
updateFoodtable
setFoodtablestate='
whereFoodtableno=@Foodtableno
下单成功,请就位开始点菜'
committran
---------------验证----------------
execute下单就位'
O_001'
2013-12-26'
TB_005'
W_002'
O_002'
112698'
TB_004'
W_003'
当餐桌有人时,则显示
成功下单时,则显示
----------查看下单情况----------
select*fromOder
select*fromFoodtable
---------------菜谱的查询---------
select*fromMenus
----------------------删除菜谱中菜品-----------
createprocedure删除菜谱中菜品
@Dishnovarchar(10)
delete
fromMenus
WhereDishno=@Dishno
------------------验证----------------
execute删除菜谱中菜品'
D_112'
-------修改菜品价格----------
createprocedure修改菜品价格
@Dishnovarchar(10),
@Dishpricefloat
updateMenus
setDishprice=@Dishprice
select*fromMenus
----------------验证--------------------
execute修改菜品价格'
D_113'
30'
---------------向菜谱增加菜品--------------
createprocedure向菜谱增加菜品
(@Dishnovarchar(10),
@Dishnamevarchar(10),
@Dishclassvarchar(10),
@Dishpricefloat
insertintoMenus
values(@Dishno,@Dishname,@Dishclass,@Dishprice)
-----------------验证--------------------
execute向菜谱增加菜品'
时蔬'
小炒类'
20'
---------------------------------------------点菜的增加、查询、删除、修改--------------------------
---------------点菜-------------
createprocedure点菜
(@Odernovarchar(10),
@Disnnamevarchar(10),
@Dish_amountint
insertintoMenus_Oder
values(@Oderno,@Dishno,@Disnname,@Dish_amount)
select*fromMenus_OderwhereOderno=@Oderno
-------------验证-----------
execute点菜'
D_111'
小炒河虾'
2'
D_114'
鸡蛋炒芹菜'
1'
D_115'
三鲜汤'
3'
----------------查询客户点菜信息---------------
createprocedure查询顾客点菜信息
@Customernovarchar(10)
selectCustomerno=@Customerno,Menus.Dishno,Dishname,Dish_amount
fromMenus,Menus_Oder,Oder
whereOder.Customerno=@CustomernoandMenus.Dishno=Menus_Oder.DishnoandOder.Oderno=Menus_Oder.Oderno
---------------验证---------------------
execute查询顾客点菜信息'
--------------删除菜品--------------------
createprocedure删除菜品
fromMenus_Oder
WhereOderno=@OdernoandDishno=@Dishno
select*fromMenus_OderwhereOderno=@Oderno
execute删除菜品'
------------------修改菜品数量---------------
cr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 餐饮 管理 系统