收藏 分销(赏)

数据库课程设计餐饮管理系统.doc

上传人:天**** 文档编号:3992915 上传时间:2024-07-24 格式:DOC 页数:17 大小:177.04KB 下载积分:8 金币
下载 相关 举报
数据库课程设计餐饮管理系统.doc_第1页
第1页 / 共17页
数据库课程设计餐饮管理系统.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
河南城建学院 《数据库原理》课程设计报告 课程名称:《数据库原理》课程设计 设计题目:餐饮管理系统 指导教师: 班级: 学号: 学生姓名: 同组人员: 成 绩: 评 语: 计算机科学与工程学院 2015年6月 《数据库原理》课程设计报告 - 16 - 目 录 第1章概述2 1。1 选题的背景与意义2 1.2相关技术分析2 第2章系统功能设计3 2。1系统总体结构设计图3 2。2 系统功能模块3 1。2。1 模块一(具体模块的名称)3 1.2.2 模块二3 第3章数据库设计5 3.1 需求分析5 3。2 概念结构设计5 3.3 逻辑结构设计14 3。4 物理结构设计16 3。5 数据库实施18 第4章结束语29 参考文献30 第1章 概述 1。1选题的背景与意义 近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下.作为传统的餐饮企业更是存在这些问题,进货,库存有人工管理,客人点单需服务员记录并送至厨房,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率. 作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。 1.2相关技术分析 经过分析,本系统运用了Microsoft SQL Server2008为数据库,系统实现了后台管理、桌台信息的查询、开台信息、点菜、收银、桌台信息管理、员工管理、菜单维护、消费查询和盈利信息查询等功能。 第2章 系统功能设计 2.1系统总体结构设计图 2.2系统功能模块 1。2.1模块一(具体模块的名称) 桌台数据包括房台编号、座位数、状态(占/空)。 酒店储存有会员信息,需要折扣信息等。 菜品信息有菜品编号,名称,价格和状态等 1。2.2模块二 □具体数据需求如下: ◎点菜阶段需要的数据有: 1、菜品信息,包括其名称、所属菜类别等。 2、桌台信息,包括其编号、可容人数、使用状态等. 3、会员信息,包括会员编号、折扣、历史消费总额等。 4、预订信息,包括预订日期、时段、预订菜品等。 ◎员工管理需要数据有: 1、员工档案:包括其姓名、性别、职位(经理,厨师,服务员)、工资。 ◎销售统计需要的数据有: 1、消费单据:包括金额、日期、项目单编号等数据。 2、消费项目单据:消费菜品编号、数量、小计等。 ◎会员管理需要的数据有: 1、会员档案:会员编号、对应折扣等。 3.13 事务需求 □ 数据录入: 1、录入房台信息 2、录入菜品信息 3、录入会员信息 4、录入员工档案信息 □ 数据更新/删除 1、更新/删除房台信息 2、更新/删除菜系信息 3、更新/删除菜品信息 4、更新/删除会员信息 5、更新/删除员工档案信息 □ 数据查询 1、查询可用房台信息 2、查询在售菜品信息 3、查询开台信息 4、查询订单信息 5、查询会员折扣信息 6、可查询某时间段的营业额。 8、查询可用房台信息 9、查询所有员工档案 第3章 数据库设计 3。1 需求分析 3.11开发背景 从分析饭店的基本情况入手,根据餐饮行业的特点和实际情况,进行系统的可行性分析,来了解企业的管理特点和存在的问题,酒店管理系统应以餐饮业务为基础,在此基础上,进行详细分析,得出系统功能结构图。本系统主要是用于后台管理,重视营业数据分析等功能,从专业角度出发,努力为餐饮管理者提供科学有效地管理模式和数据分析功能。 3.12功能模块 (1) 数据流图 业务流程图 图3—12-1顶层数据流 图3-12—2第一层数据流 图3-12—3第二层数据流程图(业务数据流程图) ①点菜业务 图3-12-4点菜业务 ②预订业务 图3-12-5订单业务 ③结帐业务 图3-12-6结账业务 ④VIP流程图 图3-12—7VIP升级业务 (2) 数据字典 ① 数据项 表1数据项 编号 数据项名称 代号 数据类型 1 员工号 workerno char(10) 2 姓名 workername varchar(10) 3 性别 workersex char(4) 4 年龄 workerage int 5 基本工资 workersalary money 6 顾客号 customerno Varchar(10) 7 顾客姓名 customername Varchar(10) 8 顾客性别 customersex Varchar(4) 9 联系电话 customerphoneno Varchar(15) 10 VIP等级折扣率 VIP_level int 11 历史消费总额 totalexpend Float(5) 12 订单号 oderno varchar(10) 13 订单时间 odertime datetime 14 菜品编号 Dishno char(10) 15 菜品名 Dishname char(20) 16 菜品类别 Dishclass 17 菜品状态 Dishstate char(2) 18 价格 Dishprice int 19 桌台号 Foodtableno char(10) 20 桌台容量 seatingno int 21 桌台状态 Foodtablestate Varchar(10) 22 折扣 discount float 23 消费总额 Saleroom float 24 菜单号 Menuno Varchar(10) 25 数量 amount int 26 折扣后总额 after_discount float 27 开票时间 billtime time 28 备注 note char(20) 29 支付方式 payway char(10) 30 账单编号 Bellno int 31 发票号 Invono char(20) ② 数据结构 表2数据结构 编号 数据结构名 属性 1 员工信息 员工号,姓名,性别,年龄,职务,工资 2 菜谱 菜品,菜品号,价格,菜类别 3 桌台信息 桌台号,容纳人数,使用状态 4 菜单 菜单编号,桌台号,点菜时间,顾客号 5 点单 菜单编号,菜品号,菜品名,数量 5 销售账单 销售账单号,时间,销售总额 6 顾客信息 顾客编号,姓名,性别,联系方式消费等级,会员等级,累计消费额 7 折扣规则 VIP等级,折扣 8 订单 订单编号,顾客编号,分配桌台,订单时间, ③ 数据流 表3数据流 编号 数据流名 输入 输出 1 菜品信息 增加菜品 菜谱 2 房台信息 增加房台 房台 3 参考菜谱 菜谱 点菜 4 空闲房台 房台 点菜 5 消费项目 点菜 菜单 6 预订菜单 预订 菜单 7 修改菜单 加菜退菜 菜单 8 记入账单 菜单 结账 9 结账 折扣方式 结账 10 销售统计 结账 销售账单 ④ 数据储存 表4数据储存 编号 数据存储名 输入 输出 1 菜谱更新 增加菜品 菜谱 2 房台更新 增加房台 房台 3 顾客信息更新 顾客新信息 顾客信息 4 销售统计 销售账单 销售统计 5 订单储存 订单 订单信息 ⑤ 处理过程 表5处理过程 编号 处理过程名 输入数据流 输出数据流 1 顾客点菜 终端 菜单 2 结账 菜单 发票 3 销售统计 销售账单 销售统计表 3.2概念结构设计 3.2.1局部E—R图 (1)菜单—菜品 图3—12—8菜单—菜品 菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间) 菜品(菜品号,名称,菜系号,价格,状态) 菜单_菜品(菜单号,菜品号,数量) (2)订单—菜单 图3—12—9订单—菜单 菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间) 订单(订单号,顾客号,订单时间,桌台号) (3)菜单-员工 图3-12-10菜单-员工 员工(员工号,姓名,性别,年龄,工资) 菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间) (4)发票—账单 图3-12—11发票-账单 (5)订单—顾客 图3-12—12订单—顾客 顾客(顾客号,姓名,年龄,性别,联系方式,等级) 订单(订单号,顾客号,订单时间,桌台号) (6)菜单顾客 图3—12—13菜单顾客 菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间) 顾客(顾客号,姓名,年龄,性别,联系方式,等级) 3。2。2整体E—R图 图3-12-14整体E-R图 3.3逻辑结构设计 1。E-R图向关系模式转换原则 根据以上关系模型的转换.首先个关系模式都满足第一范式,因为每个属性都是不可分割的基本数据项.而且非主属性完全函数依赖于候选码,符合第二范式,而且非主属性不存在传递符合第三范式要求。 2.E_R图转换成关系模式如下(下划线的属性为主码) 销售账单(账单编号,发票号,销售额,备注) 桌台(房台号,使用状态,座位数) 订单(订单号,顾客号,订单时间,桌台号) 菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间) 顾客(顾客号,姓名,年龄,性别,联系方式,等级) 折扣规则(等级,折扣) 员工(员工号,姓名,性别,年龄,工资) 菜品(菜品号,名称,菜系号,价格,状态) 菜单_菜品(菜单号,菜品号,数量) 3。子模式的设计(视图) createview凉菜 as selectDishname,Dishprice fromDish whereDishclass=’凉’ withcheckoption 3—13—1凉菜表 createview热菜 as selectDishname,Dishprice fromDish whereDishclass='热’ withcheckoption 3-13—2热菜 createview空桌台 as selectFoodtableno fromFoodtable whereFoodtablestate=’空’ with check option 3—13—3空桌 3。4 物理结构设计 1。存储结构与存取方法 数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖于选定的数据库管理系统.为一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构的过程,就是数据库的物理设计。这一阶段主要的任务是确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程. 2。数据库、表建立的代码 createdatabaseRestaurant_Management ——drop table Dish createtableDish——菜谱 (Dishnovarchar(10)primarykey, Dishnamevarchar(10), Dishclassvarchar(10), Dishpricefloat, Dishstatevarchar(6)check(Dishstate=’有’orDishstate=’无’), ) ——drop table Oder createtableOder--订单 (Odernovarchar(10)primarykey, Customernovarchar(10)notnull, Odertimedatetimenotnull, Foodtablenovarchar(10)notnull, foreignkey (Customerno)referencesCustomer(Customerno), foreignkey (Foodtableno)referencesFoodtable(Foodtableno) ) —-drop table Foodtable createtableFoodtable—-桌台信息 (Foodtablenovarchar(10)primarykey, seatingnointnotnull, Foodtablestatevarchar(6)check(Foodtablestate=’空'orFoodtablestate=’占') ) ——drop table Menus createtableMenus——菜单 (Menunovarchar(10)primarykey, Foodtablenovarchar(10)notnull, Customernovarchar(10)notnull, Odernovarchar(10), Workernovarchar(10)notnull, consumetimedatetime, foreignkey(Foodtableno)referencesFoodtable(Foodtableno), foreignkey(Customerno)referencesCustomer(Customerno), ) -—drop table Menus_Dish createtableMenus_Dish——菜单_菜品 (Menunovarchar(10), Dishnovarchar(10), Dishnamevarchar(20)notnull, Amountintnotnull, primarykey(Menuno,Dishno), foreignkey (Dishno)referencesDish(Dishno) ) altertableMenus_Dishaddcheck(Amount〉0) -—drop table Customer createtableCustomer——顾客 (Customernovarchar(10)primarykey, Customernamevarchar(10)notnull, Customersexvarchar(4)check(Customersex='男’orCustomersex=’女’)notnull, Custoemrphonenovarchar(20)uniquenotnull, VIP_levelint, totalexpendfloat ) altertablecustomeraltercolumntotalexpendfloat(5) ——drop table Discount_rules createtableDiscount_rules—-折扣规则 (VIP_levelintprimarykey, Discountfloat, ) ——drop table worker createtableworker——员工 (Workernovarchar(10)primarykey, Workernamevarchar(10), Workersexvarchar(4)check(Workersex='男’orWorkersex=’女'), Workerageint, Workersalaryint, ) --drop table Sales_bill createtableSales_bill——销售账 (Menunovarchar(10), Saleroomfloat(5), Billtimedatetime ) 3。5 数据库实施 3.5。1 —--————————-———-——-———————--—-—-———-—插入新顾客信息-—-——-—-—-——————————--—-———-———-—-————----——-—————-——---——-— --drop proc 插入新顾客信息 createproc插入新顾客信息 @Customernovarchar(10),@Customernamevarchar(10), @Customersexvarchar(4),@Custoemrphonenovarchar(20) as Insertintocustomervalues(@Customerno,@Customername,@Customersex,@Custoemrphoneno,0,0) ————————-—---———-———-———--—-———--——-—---—--测验-————-—-—-—--—--—-————-—--————-—-——--————-—---—-——————-————————-—--—- exec插入新顾客信息’C_035’,’杨涛’,'男’,'18700809052’ 3—14-1插入新顾客信息 createproc桌台 ( @Foodtablenovarchar(10), @seatingnoint, @Foodtablestatevarchar(6) ) as InsertintoFoodtablevalues(@Foodtableno,@seatingno,@Foodtablestate) exec桌台’O_005',20,’空' 3-14—2插入桌台信息 ——drop proc 预定 createprocedure预定 @odernovarchar(10), @Customernovarchar(10), @odertimedatetime, @Foodtablenovarchar(10) as insertintoOdervalues(@oderno,@Customerno,@odertime,@Foodtableno) —--——---——--————--——--——-—--———-—----———---——————————-—-—-————————--————————-———--—-————---——--———--——-—-————-———-—-—— exec预定’O_005',’C_035’,'2012—6—16',’TB_8' 3—14—3预订 —————-—-—-——-—---—————-——-—-——-——-查询预订--——————---———-—--—-—-——-—-——-——————-——————--——-———-——-——-—-——-----— ——drop proc 查询预订 createproc查询预订 @Customernovarchar(10), @Odernovarchar(10)output as ifexists(select*fromoderwherecustomerno=@Customerno) begin print’已预订’ select@Oderno=oderno fromoderwherecustomerno=@Customerno print’预定号为:’+@Oderno end elseprint’未预定’ declare@Odernovarchar(10) exec查询预订'C_002’,@Odernooutput 3—14—4预订 declare@Odernovarchar(10) exec查询预订'C_035’,@Odernooutput 3-14-5预订 —-—-—-——-——--———-————-—-——-——---开台信息—-—--———-—————--—-————--———--————--—--—————-—-—-—-—-——-——-----————--—--- -—drop proc 开台 createproc开台 @Menunovarchar(10),@Foodtablenovarchar(10),@customernovarchar(10), @Odernovarchar(10),@workernovarchar(10),@Customertimedatetime as insertintoMenus values(@Menuno,@Foodtableno,@customerno,@Oderno,@workerno,@Customertime) updateFoodtablesetFoodtablestate='占'whereFoodtableno=@Foodtableno —--————-———-——-—-———-—————--—-———-———-—-————-——---——-———---—-—-——-——--—-—-——-——-—-—-—-—---—-——————-——-——--—--—--——-——— exec开台’M_010','TB_8','C_035’,'O_005',’W_002','2012-6—11’ 3—14—6开台 3—14-7开台 createproc菜品 @Dishnovarchar(10), @Dishnamevarchar(10), @Dishclassvarchar(10), @Dishpricefloat, @Dishstatevarchar(6) as insertintoDishvalues(@Dishno,@Dishname,@Dishclass,@Dishprice,@Dishstate) exec菜品'D—10’,’蒜泥黄瓜’,’凉’,10,’有’ exec菜品’D-23’,’麻婆豆腐',’热’,15,’有’ exec菜品’D—11’,'西芹杏仁',’热’,15,’有’ exec菜品’D—39’,’樟茶鸭子',’热',45,’有’ exec菜品’D—57’,’小炒腊肉’,'热',23,’有' exec菜品'D—72',’小炒河虾’,’热',40,’有' 3-14—7菜品 -—-—-—-———-——-—-——--——————-————顾客点餐———--——-—-——————--————-—-—-———-——-————--—- createproc点菜 @Menunovarchar(10),@Dishnovarchar(20),@Dishnamevarchar(10),@Amountint as insertintomenus_dishvalues(@Menuno,@Dishno,@Dishname,@Amount) ——-—————-———-————-——————-—-————--——-———-——-——--——————--——---———-——————————-——--—— 点菜 exec点菜’M_010’,'D-10',’蒜泥黄瓜',2 exec点菜'M_010’,’D—23',’麻婆豆腐',1 exec点菜’M_010’,’D-11',’西芹杏仁’,1 exec点菜’M_010’,’D—39',’樟茶鸭子’,1 exec点菜'M_010’,’D-57’,’小炒腊肉',2 exec点菜'M_010',’D-72',’小炒河虾’,1 3-14-8点菜 ———-——————-—-——--——--——-——-——-计算总消费额-———--—————-——------——---————--—--——-—————--———-—-——— -—drop proc 消费总额 createproc消费总额 @customernovarchar(10), @Saleroomfloatoutput as select@Saleroom=SUM(Dishprice*Amount) frommenus_dish,Dish,Menus whereCustomerno=@customerno andMenus。Menuno=Menus_Dish.Menuno andDish。Dishno=menus_dish.Dishno ———---——-—————-———-—--——-————--———--—---——---—测验——-——-———-———————-—-————-———————————-—-———--———— declare@Saleroomfloat,@customernovarchar(10)='c_035’ exec消费总额@customerno,@Saleroomoutput selectCustomername,@Saleroom总费用 fromCustomer whereCustomerno=@customerno 3-14—9查询消费额 ———-——-——————--——-——-—-————-———-—查询客户点菜信息--——-——-————-----—-——------ --drop proc 查询客户点菜 createproc查询客户点菜 @customernovarchar(10) as selectDish。Dishname,Amount fromDish,menus_dish,menus wheremenus.Customerno=@customerno andmenus_dish。Menuno=menus。Menuno andDish。Dishno=menus_dish。Dishno ————--—-——-—————-———————-—-———-—-—测验-——-—————-—--—————--——-———--—---—-—-—-- exec查询客户点菜'c_035’ exec查询客户点菜’c_001’ 3—14-10查询顾客信息 3-14-11查询顾客信息 -——-————-———-—--—----—-——————---菜品的删除——————-——--—-—-————--———————-—- ——drop proc 修改菜单 createproc修改菜单 @Menunovarchar(10),@Dishnamevarchar(20) as delete frommenus_dish whereMenuno=@Menuno andDishname=@Dishname ———————-———-—-———---—-————————-—-—-测验———————-——--——-——-———-————--———-—--- exec修改菜单'M_010’,'小炒腊肉' 3—14-12查询菜单 —--—--——--———-—-—-----——-———--发票信息—-—--—-———-————-—-—--—--————--—--——————-—-—--—--——————-———---——-——— createproc发票信息 @customernovarchar(10), @Actuallypay1float, @Menunovarchar(10)output, @Actuallypay2floatoutput, @customernamevarchar(10)output, @Saleroomfloatoutput, @after_discountfloatoutput, @Billtimedatetimeoutput as select@Saleroom=SUM(Dishprice*Amount) frommenus_dish,Dish,Menus whereCustomerno=@customerno andMenus.Menuno=Menus_Dish。Menuno andDish.Dishno=menus_dish。Dishno select@customername=customername fromcustomer wherecustomerno=@customerno select@Menuno=Menuno fromMenus whereCustomerno=@customerno set@Billtime=getdate() set@Actuallypay2=@Actuallypay1 select@after_discount=@Saleroom*0。1*Discount fromcustomer,Discount_rules wherecustomer.VIP_level=Discount_rules。VIP_level print’用户名: ’+' '+@customername print’实 付:’+str(@Actuallypay2, 10, 2) print’应 付:’+str(@Saleroom, 10, 2) print'折扣后:’+str(@after_discount, 10, 2) print’应 找:'+str(@Actuallypay2-@after_discount, 10, 2) print’时 间:'+' ’+cast(@Billtimeasvarchar(20)) updatecustomer settotalexpend=(totalexpend+@after_discount) wherecustomerno=@customerno delete frommenus_dish whereMenuno= (selectMenuno fromMenus wherecustomerno=@customerno) updateFoodtable setFoodtablestate=’空’ whereFoodtableno=(selectFoodtableno fromMenus wherecustomerno=@customerno) delete fromMenus wherecustomerno=@customerno insertintosales_billvalues(@Menuno,@after_discount,@Billtime) ————-———-—-——-—--—-————--—-———-—--——-——测验-————--——-———--———-——---—--————-—-———----——----—-—- declare @customernamevarchar(10), @Actuallypay2float, @Saleroomfloat, @Menunovarchar(10), @after_discountfloat, @Billtimedatetime exec发票信息'c_002’, 200, @customernameoutput, @Actuallypay2output, @Saleroomoutput, @Menunooutput, @after_discountoutput, @Billtimeoutput 3-14—10打印发票 ———-—-———---—-—-——---——-—-——-—-———————-—--查询某一时间段的营业额--—-—-—-—--——---—-—————--———————-—-————-— —-drop proc 查询营业额 createproc查询营业额 @begintimedatetime, @endtimedatetime, @sum_of_turnoverfloat(5)output As select@sum_of_turnover=sum(Saleroom) fromSales_bill whereBilltime>=@begintimeandBilltime〈@endtime print’从时间:’+cast(@begintimeasvarchar(20))+’ 到时间:’+cast(@endtimeasvarchar(20))+ ’ 的营业总额为:’+str(@sum_of_turnover, 10, 2) -—-——--—---—-——————-—--——-————-——————-——-—————测验--—-———--——-———-—————--——--—————-—————---—————————-——-—-—-——-——- declare@sum_of_turnoverfloat(5) exec查询营业额’2015—6-13','2015—9—113’,@sum_of_turnoveroutput select@sum_of_turnover 3-14-11查询营业额 ——-——---———————-—-—-—————-----VIP升级————-——---—---——————-——----————— createtriggertrig_Upgrade_of_VIP_levelonCustomer afterupdate as declare@novarchar(20), @expendfloat, @levelint select@no=Customerno,@expend=totalexpend,@level=VIP_level frominserted if(@expend〈 500) set@level= 0 elseif(@expend〉= 500 and@expend〈 1000) set@level= 1 elseif(@expend〉= 1000 and@expend〈 1800) set@level= 2 elseif(@expend〉= 1800 and@expend〈 2500) set@level= 3 elseif(@expend〉= 2500 and@expend〈 3500) set@level= 4 else set@level= 5 updateCustomersetVIP_level=@levelwhereCustomerno=@no —-———————————-—---———-——————-———-—————---—————
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服