1、河南城建学院数据库原理课程设计报告课程名称:数据库原理课程设计设计题目:餐饮管理系统 指导教师: 班级: 学号: 学生姓名: 同组人员: 成 绩: 评 语: 计算机科学与工程学院2015年6月 数据库原理课程设计报告 - 16 -目 录第1章概述21。1 选题的背景与意义21.2相关技术分析2第2章系统功能设计32。1系统总体结构设计图32。2 系统功能模块31。2。1 模块一(具体模块的名称)31.2.2 模块二3第3章数据库设计53.1 需求分析53。2 概念结构设计53.3 逻辑结构设计143。4 物理结构设计163。5 数据库实施18第4章结束语29参考文献30第1章 概述1。1选题的
2、背景与意义近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下.作为传统的餐饮企业更是存在这些问题,进货,库存有人工管理,客人点单需服务员记录并送至厨房,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率.作为计算机应用的一部分,使用计算机对餐饮企业信
3、息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。1.2相关技术分析经过分析,本系统运用了Microsoft SQL Server2008为数据库,系统实现了后台管理、桌台信息的查询、开台信息、点菜、收银、桌台信息管理、员工管理、菜单维护、消费查询和盈利信息查询等功能。第2章 系统功能设计2.1系统总体结构设计图2.2系统功能模块1。2.1模块一(具体模块的名称)桌台数据包括房台编号、座位数、状态(占/空)。 酒店储存有会员信息,需要折扣信息
4、等。菜品信息有菜品编号,名称,价格和状态等1。2.2模块二具体数据需求如下:点菜阶段需要的数据有:1、菜品信息,包括其名称、所属菜类别等。2、桌台信息,包括其编号、可容人数、使用状态等.3、会员信息,包括会员编号、折扣、历史消费总额等。4、预订信息,包括预订日期、时段、预订菜品等。员工管理需要数据有: 1、员工档案:包括其姓名、性别、职位(经理,厨师,服务员)、工资。销售统计需要的数据有:1、消费单据:包括金额、日期、项目单编号等数据。2、消费项目单据:消费菜品编号、数量、小计等。会员管理需要的数据有: 1、会员档案:会员编号、对应折扣等。3.13 事务需求 数据录入: 1、录入房台信息 2、
5、录入菜品信息 3、录入会员信息 4、录入员工档案信息 数据更新/删除 1、更新/删除房台信息 2、更新/删除菜系信息 3、更新/删除菜品信息 4、更新/删除会员信息 5、更新/删除员工档案信息 数据查询 1、查询可用房台信息 2、查询在售菜品信息 3、查询开台信息 4、查询订单信息 5、查询会员折扣信息6、可查询某时间段的营业额。 8、查询可用房台信息 9、查询所有员工档案第3章 数据库设计3。1 需求分析311开发背景从分析饭店的基本情况入手,根据餐饮行业的特点和实际情况,进行系统的可行性分析,来了解企业的管理特点和存在的问题,酒店管理系统应以餐饮业务为基础,在此基础上,进行详细分析,得出系
6、统功能结构图。本系统主要是用于后台管理,重视营业数据分析等功能,从专业角度出发,努力为餐饮管理者提供科学有效地管理模式和数据分析功能。3.12功能模块(1) 数据流图业务流程图图312-1顶层数据流图3-122第一层数据流图3-123第二层数据流程图(业务数据流程图)点菜业务图3-12-4点菜业务预订业务 图3-12-5订单业务结帐业务图3-12-6结账业务VIP流程图图3-127VIP升级业务(2) 数据字典 数据项 表1数据项编号数据项名称代号数据类型1员工号workernochar(10)2姓名workernamevarchar(10)3性别workersexchar(4)4年龄work
7、erageint5基本工资workersalarymoney6顾客号customernoVarchar(10)7顾客姓名customernameVarchar(10)8顾客性别customersexVarchar(4)9联系电话customerphonenoVarchar(15)10VIP等级折扣率VIP_levelint11历史消费总额totalexpendFloat(5)12订单号odernovarchar(10)13订单时间odertimedatetime14菜品编号Dishnochar(10)15菜品名Dishnamechar(20)16菜品类别Dishclass17菜品状态Dishs
8、tatechar(2)18价格Dishpriceint19桌台号Foodtablenochar(10)20桌台容量seatingnoint21桌台状态FoodtablestateVarchar(10)22折扣discountfloat23消费总额Saleroomfloat24菜单号MenunoVarchar(10)25数量amountint26折扣后总额after_discountfloat27开票时间billtimetime28备注notechar(20)29支付方式paywaychar(10)30 账单编号Bellnoint31发票号Invonochar(20) 数据结构 表2数据结构编号
9、数据结构名属性1员工信息员工号,姓名,性别,年龄,职务,工资2菜谱菜品,菜品号,价格,菜类别3桌台信息桌台号,容纳人数,使用状态4菜单菜单编号,桌台号,点菜时间,顾客号5点单菜单编号,菜品号,菜品名,数量5销售账单销售账单号,时间,销售总额6顾客信息顾客编号,姓名,性别,联系方式消费等级,会员等级,累计消费额7折扣规则VIP等级,折扣8订单订单编号,顾客编号,分配桌台,订单时间, 数据流表3数据流编号数据流名输入输出1菜品信息增加菜品菜谱2房台信息增加房台房台3参考菜谱菜谱点菜4空闲房台房台点菜5消费项目点菜菜单6预订菜单预订菜单7修改菜单加菜退菜菜单8记入账单菜单结账9结账折扣方式结账10销
10、售统计结账销售账单 数据储存 表4数据储存编号数据存储名输入输出1菜谱更新增加菜品菜谱2房台更新增加房台房台3顾客信息更新顾客新信息顾客信息4销售统计销售账单销售统计5订单储存订单订单信息 处理过程 表5处理过程编号处理过程名输入数据流输出数据流1顾客点菜终端菜单2结账菜单发票3销售统计销售账单销售统计表3.2概念结构设计3.2.1局部ER图(1)菜单菜品 图3128菜单菜品菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)菜品(菜品号,名称,菜系号,价格,状态)菜单_菜品(菜单号,菜品号,数量)(2)订单菜单图3129订单菜单菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)订单(订
11、单号,顾客号,订单时间,桌台号)(3)菜单-员工图3-12-10菜单-员工员工(员工号,姓名,性别,年龄,工资)菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)(4)发票账单图3-1211发票-账单(5)订单顾客图3-1212订单顾客顾客(顾客号,姓名,年龄,性别,联系方式,等级)订单(订单号,顾客号,订单时间,桌台号)(6)菜单顾客图31213菜单顾客菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)顾客(顾客号,姓名,年龄,性别,联系方式,等级)3。2。2整体ER图图3-12-14整体E-R图3.3逻辑结构设计1。E-R图向关系模式转换原则根据以上关系模型的转换.首先个关系模式都
12、满足第一范式,因为每个属性都是不可分割的基本数据项.而且非主属性完全函数依赖于候选码,符合第二范式,而且非主属性不存在传递符合第三范式要求。2.图转换成关系模式如下(下划线的属性为主码)销售账单(账单编号,发票号,销售额,备注)桌台(房台号,使用状态,座位数)订单(订单号,顾客号,订单时间,桌台号)菜单(菜单号,桌台号,订单号,顾客号,负责员工,时间)顾客(顾客号,姓名,年龄,性别,联系方式,等级)折扣规则(等级,折扣)员工(员工号,姓名,性别,年龄,工资)菜品(菜品号,名称,菜系号,价格,状态)菜单_菜品(菜单号,菜品号,数量)3。子模式的设计(视图)createview凉菜asselect
13、Dishname,DishpricefromDishwhereDishclass=凉withcheckoption3131凉菜表createview热菜asselectDishname,DishpricefromDishwhereDishclass=热withcheckoption3-132热菜createview空桌台asselectFoodtablenofromFoodtablewhereFoodtablestate=空with check option3133空桌3。4 物理结构设计1。存储结构与存取方法数据库在物理设备上的存储结构与存取方法就是数据库的物理结构,它依赖于选定的数据库管理
14、系统.为一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构的过程,就是数据库的物理设计。这一阶段主要的任务是确定数据库的物理结构,并不断的进行优化处理,主要建立索引,触发器,存储过程.2。数据库、表建立的代码createdatabaseRestaurant_Managementdrop table DishcreatetableDish菜谱(Dishnovarchar(10)primarykey,Dishnamevarchar(10),Dishclassvarchar(10),Dishpricefloat,Dishstatevarchar(6)check(Dishstate=有orDis
15、hstate=无),)drop table OdercreatetableOder-订单(Odernovarchar(10)primarykey,Customernovarchar(10)notnull,Odertimedatetimenotnull,Foodtablenovarchar(10)notnull,foreignkey (Customerno)referencesCustomer(Customerno),foreignkey (Foodtableno)referencesFoodtable(Foodtableno)-drop table FoodtablecreatetableFo
16、odtable-桌台信息(Foodtablenovarchar(10)primarykey,seatingnointnotnull,Foodtablestatevarchar(6)check(Foodtablestate=空orFoodtablestate=占))drop table MenuscreatetableMenus菜单(Menunovarchar(10)primarykey,Foodtablenovarchar(10)notnull,Customernovarchar(10)notnull,Odernovarchar(10),Workernovarchar(10)notnull,c
17、onsumetimedatetime,foreignkey(Foodtableno)referencesFoodtable(Foodtableno),foreignkey(Customerno)referencesCustomer(Customerno),)-drop table Menus_DishcreatetableMenus_Dish菜单_菜品(Menunovarchar(10),Dishnovarchar(10),Dishnamevarchar(20)notnull,Amountintnotnull,primarykey(Menuno,Dishno),foreignkey (Dish
18、no)referencesDish(Dishno)altertableMenus_Dishaddcheck(Amount0)-drop table CustomercreatetableCustomer顾客(Customernovarchar(10)primarykey,Customernamevarchar(10)notnull,Customersexvarchar(4)check(Customersex=男orCustomersex=女)notnull,Custoemrphonenovarchar(20)uniquenotnull,VIP_levelint,totalexpendfloat
19、)altertablecustomeraltercolumntotalexpendfloat(5)drop table Discount_rulescreatetableDiscount_rules-折扣规则(VIP_levelintprimarykey,Discountfloat,)drop table workercreatetableworker员工(Workernovarchar(10)primarykey,Workernamevarchar(10),Workersexvarchar(4)check(Workersex=男orWorkersex=女),Workerageint,Work
20、ersalaryint,)-drop table Sales_billcreatetableSales_bill销售账(Menunovarchar(10),Saleroomfloat(5),Billtimedatetime)3。5 数据库实施3.5。1-插入新顾客信息-drop proc 插入新顾客信息createproc插入新顾客信息Customernovarchar(10),Customernamevarchar(10),Customersexvarchar(4),Custoemrphonenovarchar(20)asInsertintocustomervalues(Customerno
21、,Customername,Customersex,Custoemrphoneno,0,0)-测验-exec插入新顾客信息C_035,杨涛,男,18700809052314-1插入新顾客信息createproc桌台(Foodtablenovarchar(10),seatingnoint,Foodtablestatevarchar(6))asInsertintoFoodtablevalues(Foodtableno,seatingno,Foodtablestate)exec桌台O_005,20,空3-142插入桌台信息drop proc 预定createprocedure预定odernovarc
22、har(10),Customernovarchar(10),odertimedatetime,Foodtablenovarchar(10)asinsertintoOdervalues(oderno,Customerno,odertime,Foodtableno)-exec预定O_005,C_035,2012616,TB_83143预订-查询预订-drop proc 查询预订createproc查询预订Customernovarchar(10),Odernovarchar(10)outputasifexists(selectfromoderwherecustomerno=Customerno)b
23、eginprint已预订selectOderno=odernofromoderwherecustomerno=Customernoprint预定号为:+Odernoendelseprint未预定declareOdernovarchar(10)exec查询预订C_002,Odernooutput3144预订declareOdernovarchar(10)exec查询预订C_035,Odernooutput3-14-5预订-开台信息-drop proc 开台createproc开台Menunovarchar(10),Foodtablenovarchar(10),customernovarchar(
24、10),Odernovarchar(10),workernovarchar(10),CustomertimedatetimeasinsertintoMenusvalues(Menuno,Foodtableno,customerno,Oderno,workerno,Customertime)updateFoodtablesetFoodtablestate=占whereFoodtableno=Foodtableno-exec开台M_010,TB_8,C_035,O_005,W_002,2012-6113146开台314-7开台createproc菜品Dishnovarchar(10),Dishna
25、mevarchar(10),Dishclassvarchar(10),Dishpricefloat,Dishstatevarchar(6)asinsertintoDishvalues(Dishno,Dishname,Dishclass,Dishprice,Dishstate)exec菜品D10,蒜泥黄瓜,凉,10,有exec菜品D-23,麻婆豆腐,热,15,有exec菜品D11,西芹杏仁,热,15,有exec菜品D39,樟茶鸭子,热,45,有exec菜品D57,小炒腊肉,热,23,有exec菜品D72,小炒河虾,热,40,有3-147菜品-顾客点餐-createproc点菜Menunovarc
26、har(10),Dishnovarchar(20),Dishnamevarchar(10),Amountintasinsertintomenus_dishvalues(Menuno,Dishno,Dishname,Amount)-点菜exec点菜M_010,D-10,蒜泥黄瓜,2exec点菜M_010,D23,麻婆豆腐,1exec点菜M_010,D-11,西芹杏仁,1exec点菜M_010,D39,樟茶鸭子,1exec点菜M_010,D-57,小炒腊肉,2exec点菜M_010,D-72,小炒河虾,13-14-8点菜-计算总消费额-drop proc 消费总额createproc消费总额cus
27、tomernovarchar(10),SaleroomfloatoutputasselectSaleroom=SUM(DishpriceAmount)frommenus_dish,Dish,MenuswhereCustomerno=customernoandMenus。Menuno=Menus_Dish.MenunoandDish。Dishno=menus_dish.Dishno-测验-declareSaleroomfloat,customernovarchar(10)=c_035exec消费总额customerno,SaleroomoutputselectCustomername,Saler
28、oom总费用fromCustomerwhereCustomerno=customerno3-149查询消费额-查询客户点菜信息-drop proc 查询客户点菜createproc查询客户点菜customernovarchar(10)asselectDish。Dishname,AmountfromDish,menus_dish,menuswheremenus.Customerno=customernoandmenus_dish。Menuno=menus。MenunoandDish。Dishno=menus_dish。Dishno-测验-exec查询客户点菜c_035exec查询客户点菜c_00
29、1314-10查询顾客信息3-14-11查询顾客信息-菜品的删除-drop proc 修改菜单createproc修改菜单Menunovarchar(10),Dishnamevarchar(20)asdeletefrommenus_dishwhereMenuno=MenunoandDishname=Dishname-测验-exec修改菜单M_010,小炒腊肉314-12查询菜单-发票信息-createproc发票信息customernovarchar(10),Actuallypay1float,Menunovarchar(10)output,Actuallypay2floatoutput,cu
30、stomernamevarchar(10)output,Saleroomfloatoutput,after_discountfloatoutput,BilltimedatetimeoutputasselectSaleroom=SUM(DishpriceAmount)frommenus_dish,Dish,MenuswhereCustomerno=customernoandMenus.Menuno=Menus_Dish。MenunoandDish.Dishno=menus_dish。Dishnoselectcustomername=customernamefromcustomerwherecus
31、tomerno=customernoselectMenuno=MenunofromMenuswhereCustomerno=customernosetBilltime=getdate()setActuallypay2=Actuallypay1selectafter_discount=Saleroom0。1Discountfromcustomer,Discount_ruleswherecustomer.VIP_level=Discount_rules。VIP_levelprint用户名: + +customernameprint实 付:+str(Actuallypay2, 10, 2)print
32、应 付:+str(Saleroom, 10, 2)print折扣后:+str(after_discount, 10, 2)print应 找:+str(Actuallypay2-after_discount, 10, 2)print时 间:+ +cast(Billtimeasvarchar(20)updatecustomersettotalexpend=(totalexpend+after_discount)wherecustomerno=customernodeletefrommenus_dishwhereMenuno=(selectMenunofromMenuswherecustomerno
33、=customerno)updateFoodtablesetFoodtablestate=空whereFoodtableno=(selectFoodtablenofromMenuswherecustomerno=customerno)deletefromMenuswherecustomerno=customernoinsertintosales_billvalues(Menuno,after_discount,Billtime)-测验-declarecustomernamevarchar(10),Actuallypay2float,Saleroomfloat,Menunovarchar(10)
34、,after_discountfloat,Billtimedatetimeexec发票信息c_002, 200,customernameoutput,Actuallypay2output,Saleroomoutput,Menunooutput,after_discountoutput,Billtimeoutput3-1410打印发票-查询某一时间段的营业额-drop proc 查询营业额createproc查询营业额begintimedatetime,endtimedatetime,sum_of_turnoverfloat(5)outputAsselectsum_of_turnover=sum
35、(Saleroom)fromSales_billwhereBilltime=begintimeandBilltimeendtimeprint从时间:+cast(begintimeasvarchar(20))+ 到时间:+cast(endtimeasvarchar(20))+ 的营业总额为:+str(sum_of_turnover, 10, 2)-测验-declaresum_of_turnoverfloat(5)exec查询营业额20156-13,20159113,sum_of_turnoveroutputselectsum_of_turnover3-14-11查询营业额-VIP升级-creat
36、etriggertrig_Upgrade_of_VIP_levelonCustomerafterupdateasdeclarenovarchar(20),expendfloat,levelintselectno=Customerno,expend=totalexpend,level=VIP_levelfrominsertedif(expend 500)setlevel= 0elseif(expend= 500 andexpend 1000)setlevel= 1elseif(expend= 1000 andexpend 1800)setlevel= 2elseif(expend= 1800 andexpend 2500)setlevel= 3elseif(expend= 2500 andexpend 3500)setlevel= 4elsesetlevel= 5updateCustomersetVIP_level=levelwhereCustomerno=no-
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100