餐饮管理07464_第1页
餐饮管理07464_第2页
餐饮管理07464_第3页
餐饮管理07464_第4页
餐饮管理07464_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库技术课程设计课题 餐饮管理系统 班级 09电商1班 学号 0901012109 姓名 王月珠 2011 年 7月 8日2011 年 7月 15 日目录一需求分析311 任务概述312 需求说明413 数据流程614 数据字典6二数据库概念设计921 局部概念模式922 全局概念模式12三 数据库逻辑设计1231 DBMS的选择1232 数据模型映射1233 数据库优化和完整性设计13四 数据库物理设置1541 建立餐厅桌台管理系统数据库1642 建立各表格1643 输入信息1844 数据表记录和约束条件的的增加、删除和修改2045 实现各种查询2146 建立视图2347 建立索引2348

2、 储存过程2449 触发器26五总结28餐饮管理系统一需求分析随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。近两年来已呈现出高速发展的态势。但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是在提供解决信息方面都难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。有效的管理成了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统不失为一条有

3、效的解决途径。 当今世界已进入到了计算机信息管理领域中激烈的时代,应用计算机已经变得十分普遍了,我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中立于不败之地。作为计算机的一部分,使用对餐饮企业信息管理,具用手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好,寿命长、成本低等。这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。11 任务概述本系统运用了Microsoft SQL为后台数据库,系统实现了前台管理,桌台信息的查询,开台信息,点菜,收银,桌台信息管理,员工管理,菜单维护

4、,消费查询,会员信息处理,盈利信息查询等功能。本系统具有良好的后台支持,使用方便。具有完善的查询,对维护系统起辅助决策的作用,能及时、方便、灵活地进行查询、更改、变动、删除等维护性操作。餐饮管理系统有足够的存储容量满足餐馆每日营业的变动,另个对于操作用户有一定的管理,并对用户的权限有一定的设置。餐饮管理系统结账管理会员信息管理消费查询管理人员管理菜单管理桌台信息管理用户登录管理添加取消开台开台更新删除添加更新删除用户登入系统,输入用户名和密码,系统从数据库的用户信息表中进行核对,完全一致则进入系统。桌子或会员的信息的增加时,系统会把这些信息写入到数据库中的桌子表和会员信息表中。若客人取消预定,

5、则在预定单中删除这些信息。当结账时,通过桌子编号从桌子表中读取消费信息。结账后 ,就把此行信息删除,写入到结账表中。如果是会员,消费的信息会写入到会员信息表中,消费的次数和消费的金额都将累加,如果消费金额达到一定的程度,这签单的金额度将会发生变化。 12 需求说明参照目标业务的流程情况,餐饮管理系统功能主要有以下功能:管理员登录系统主界面结算管理退出系统顾客登记客户管理桌台客房管理查询系统客户入桌信息剩余桌台信息桌台类型桌台信息以下对各项功能的需求进行具体说明:1客户登记主要是用来记录客户的信息和入桌情况的原始依据,包括客户号、客户名、入桌时间的输入等等,最后录入客户信息表和客户入桌信息。2查

6、询系统1)客户入桌信息:用来查询某个客户的入桌信息,包括客户号、桌台编号、桌台类型、入桌时间。2)剩余桌台信息:是用来查询餐厅桌台的剩余情况,依此来管理和安排客户的入桌选择;避免出现桌台重复安排等,提高运作效率。3客户管理即会员管理用来记录客户的相关信息,包括客户号、客户名、籍贯、联系电话等的输入、修改和删除等等。4桌台管理所有桌台的信息,包括桌台编号、桌台类型、楼层、桌台描述、是否有人等信息的输入、修改和删除等等。5结算管理根据客户的入桌时间和退桌时间,还有桌台的类型来决定费用并进行结算。主要包括客户名、桌台编号、结束时间、结算金额6退出系统:管理员退出系统13 数据流程数据源数据处理数据存

7、储数据流1客户根据自身的需要而向前台管理员提出的桌台需求,管理员进入桌台查询系统,把查询结果(桌台编号、类型、价格、描述等)回馈给客户。查询结果客户需求客户桌台类型查询桌台信息 2客户登记自己的基本信息,前台管理员将客户信息及其相关入桌信息录入系统,客户确认(客户姓名、桌台编号等)后,入桌成功。 客户选择客户信息确认信息客户入桌登记入桌信息客户信息3结算时,系统审核入桌信息,并提供给客户具体的入桌信息,如价格、入桌时间、退桌时间等。退房需求结算信息客户结算入桌息14 数据字典(一)数据项1 数据项:客户号 含义说明:客户入桌时,依据顺序给客户进行编排的号码。 类型:字符型 长度:8 备注:唯一

8、标识某个客户的身份2 数据项:客户姓名 含义说明:入桌的客户称谓 类型:字符型 长度:10 3 数据项:桌台类型号 含义说明:用来定义不同配置的桌台。 类型:字符型 长度:10备注:唯一标识某一桌台配置标准4 数据项:桌台编号含义说明:用来编排餐厅桌台的号码,同桌台类型号区分开。 类型:字符型 长度:10 备注:唯一标识某一桌台5 数据项:价格 含义说明:客户入桌所需费用,并作为日后结算的依据。 类型:货币型 6 数据项:入桌时间 含义说明:客户入桌时的系统时间 类型:时间型7 数据项:退桌时间 含义说明:客户退桌结帐时的系统时间 类型:时间型 (二)数据流1 数据流:客户需求 说明:客户根据

9、自身的需要而向前台管理员提出的桌台需求 数据流来源:客户 数据流去向:桌台管理系统 组成:桌台编号、价格、位置、桌台配套设施等 2 数据流:查询结果 说明:输入客户需求的查询条件后输出的结果 数据流来源:桌台管理系统 数据流去向:客户 组成:桌台编号、类型、价格、位置、桌台配套设施等 3 数据流:客户选择 说明:客户根据查询结果所做出的选择、决定 数据流来源:客户 数据流去向:入桌信息系统 组成:类型、桌台编号等4 数据流:客户信息与入桌信息 说明:前台管理员将客户信息及其入桌信息录入系统 数据流来源:登记模块 数据流去向:入桌信息系统 组成:桌台编号、客户号、入桌时间等5 数据流:退桌需求

10、说明:客户要离开餐厅,需要退桌离开。 数据流来源:客户 数据流去向:结算信息系统(三)数据存储1 数据存储:客户信息 说明:记录客户的基本信息,如身份证号、姓名、性别、籍贯等 存取方式:随机存取2 数据存储:桌台类型 说明:记录各种类型桌台的设施配置等信息 存取方式:顺序存取3 数据存储:桌台信息 说明:记录桌台的基本信息,所属类型、桌台编号、位置等 存取方式:顺序存取4 数据存储:入桌信息 说明:记录客户入桌的基本信息,如入桌时间、桌台编号等 存取方式:随机存取(四)数据处理1 数据处理:查询 说明:根据客户的需求和客户提供的信息,输入到桌台管理系统中去查询,系统自动检索出与输入相匹配的记录

11、输出到用户界面。 输入:客户需求(查询条件) 输出:与查询条件相匹配的的记录 处理:在系统存储的信息中检索符合要求的信息记录并输出2 数据处理:登记 说明:客户入桌时提供个人信息以及选择信息,记录到相应的存储中 输入:客户信息、桌台选择等 输出:客户入桌记录 处理:将客户的个人信息记录到客户信息表中,将入桌信息记录到入桌信息表中3 数据处理:结算 说明:根据客户提供的退桌信息为客户办理退桌手序并注销桌台 输入:客户身份证号或姓名 输出:客户入桌的具体信息以及结算信息 处理:在系统存储的信息中检索出该客户的入桌信息进行,结算后将该信息存档二数据库概念设计21 局部概念模式通过以上对数据字典的设计

12、,总结出以下几个数据库实体,其E-R图如下: 1.用户表包括:UserID,用户名,密码,权限 用户表用户名UserID密码权限用户表实体E-R图 2.菜品信息表包括:菜品类型,菜品名,菜品价格菜品信息表表青菜品编号菜品价格菜品名称菜品类型号菜品信息实体E-R图 3.桌台信息包括:桌台信息,桌台状态,桌台编号,桌台价格,桌台位置,桌台类型桌台信息表桌台状态桌台位置桌台价格桌台编号桌台类型桌台信息桌台信息实体E-R图 4. 顾客点菜信息表包括:菜品名称,菜品数量,菜品价格,服务人员,桌台信息,用餐时间顾客点菜信息表菜品数量菜品价格菜品名称菜单编号服务人员桌台信息用餐时间是否入桌 会员编号顾客点菜

13、信息表实体E-R图5. 员工信息表包括:员工姓名,性别,员工编号,电话,证件号,年龄员工信息表员工姓名证件号电话员工编号年龄性别员工信息表实体E-R图6.会员信息表包括:会员编号,会员姓名,联系方式,地址,消费次数,消费积分,备注会员信息表联系方式消费积分消费次数地址会员编号备注会员姓名会员信息实体E-R图22 全局概念模式客户桌台类型桌台信息入桌属于系统管理员查询结算客户号退桌时间时间入桌时间桌台编号桌台信息三 数据库逻辑设计数据库的逻辑结构与所采用的数据库管理系统(DBMS)有关,因此首先要面临DBMS的选择,然后是如何将一种概念模式映射为逻辑模式,最后是优化。31 DBMS的选择DBMS

14、的选择取决于多种因素,包括技术、经济、安全以及管理政策等方面。技术因素涉及DBMS是否能够胜任所要完成的工作。针对本系统的情况,考虑到我们的设计目标是中小规模的餐厅桌台管理系统,对功能和性能的要求不太高,故可以选择Microsoft SQL Server 2005。32 数据模型映射将数据库概念模式映射为数据库逻辑模式,也就是把E-R模型转换为关系模型。分别将每个实体集转化为关系,再把联系集也转化为关系。从以上的E-R模型可得如下关系: 1实体集映射为关系用户表(UserID,用户名,密码,权限)菜品信息表(菜品编号,菜品名,菜品类型,菜品价格)桌台信息(桌台编号,桌台信息,桌台状态,桌台价格

15、,桌台位置,桌台类型)顾客点菜信息表(菜品名称,菜品数量,菜品价格,服务人员,桌台信息,用餐时间)员工信息表(员工编号,员工姓名,性别,电话,证件号,年龄)会员信息表(会员编号,会员姓名,联系方式,地址,消费次数,消费积分,备注)2联系集映射为关系查询(桌台编号 类型名 价格 位置)登记(客户名 桌台编号 入桌时间)结算(客户号 桌台编号 会员编号 入桌时间 退桌时间 结算金额)33 数据库优化和完整性设计数据库的优化一般分为三步:首先检查是否存在冗余的表和可以合并的表;然后按照关系数据库的规范化理论,家查每一个表时候达到优化(一般为第三范式);最后对照需求,检查每一项功能所需的数据是否都有相

16、应的数据库表支撑。1表的合并2规范化3检查需求的每一项功能4完整性设计最后得出6张表:用户表(UserID,用户名,密码,权限)菜品信息表(菜品编号,菜品名,菜品类型,菜品价格)桌台信息(桌台编号,桌台信息,桌台状态,桌台价格,桌台位置,桌台类型)顾客点菜信息表(菜品名称,菜品数量,菜品价格,服务人员,桌台信息,用餐时间)员工信息表(员工编号,员工姓名,性别,电话,证件号,年龄)会员信息表(会员编号,会员姓名,联系方式,地址,消费次数,消费积分,备注)1 userinfo表(登录人员信息表)结构表名userinfo列名类型长度(精度)完整性约束备注UserIDint主键UserNamevarc

17、har50不为空UserPwdvarchar50不为空UseTypechar10不为空2 Food表(菜品信息表结构)表名Food列名类型长度(精度)完整性约束备注FoodIDint主键FoodTypechar20FoodNumchar10FoodPricedecimal(18,0)3 Desk表(桌台信息表结构)表名Desk列名类型长度(精度)完整性约束备注DeskIDint主键DeskPositionchar10DeskStatuschar10只能是“是”或“否”DeskPricedecimal(18,0)DeskTypechar10DeskTextOfDetailvarchar50默认“

18、未描述”4guestfood(顾客点菜信息表结构)表名guestfood列名类型长度(精度)完整性约束备注foodnamevarchar50主键foodnumchar10foodallpricedecimal(18,0)waiternamevarchar50textsofdetailvarchar50diningtimevarchar50默认系统当前时间deskidchar20是否入桌bin只允许是否5Waiter 表(餐厅员工表结构)表名Waiter列名类型长度(精度)完整性约束备注waiteridint主键waiternamevarchar50sexchar10只允许写“男、女”telva

19、rchar50carnum varchar50agechar106 . Memberinfo(会员信息表)表名Memberinfo列名类型长度(精度)完整性约束备注MemberIDchar50主键MemberNamevarchar10Tel1varchar40Addressvarchar50ConsumedTimeint不允许为空ConsumedIntegralint不允许为空四 数据库物理设置物理设计的目的不仅要保证存储数据的适当结构,而且要以适当的方式对性能提供保证。数据库物理设计主要设计以下几方面的工作:1数据库的数据文件的分布结构。这种结构主要是确定数据库的存储空间的分配、数据文件的存

20、放路径等。2确定索引的结构。索引是设计是否合理对数据库系统运行的效率有非常大的影响,特别在海量数据的情况下甚至有决定性的影响。一般性的原则是,对于作为连接查询的连接条件的属性以及作为选择条件的属性,通常应该创建索引。但另一方面,索引站用了存储资源,又增加了插入、删除和更新操作的系统代价。所以,索引数量要适当。应该全面地检查系统功能中需要进行数据库检查的操作,逐项地进行分析,以确定必须创建的索引表和属性。尤其是对于数据量较大,且主要用于查询和数据更改少的表,要根据查询要求尽量多建索引。41 建立餐饮管理系统数据库IF exists(select * from sysdatabases where

21、 name ='餐饮管理系统')drop database 餐饮管理系统CREATE DATABASE 餐饮管理系统on primary(name='餐饮管理系统', filename='E:数据库课程设计DB餐饮管理系统.mdf', size=10mb, maxsize=unlimited, filegrowth=1mb)log on(name='food_log', filename='E:数据库课程设计DB餐饮管理系统_log.ldf', size=10mb, maxsize=unlimited, fileg

22、rowth=10%)GO42 建立各表格1. userlogin表 use 餐饮管理系统GOcreate table UseInfo(UserID int primary key not null,Usename varchar(50)not null,UsePwd varchar(50) not null,UseType char(10) not null) 2. Food表 create table food(foodID int primary key not null,FoodType char(20),FoodNumchar(10),FoodPrice decimal(18,0)3.

23、 Desk表create table desk(DeskID int primary key not null,DeskPositionchar(10),DeskStatuschar(10),DeskPricedecimal(18,0),DeskTypechar(10),DeskTextOfDetailvarchar(50) 4. guestfoodcreate table guestfood(foodname varchar(50),foodnumchar(10),foodallpricedecimal(18,0),waiternamevarchar(50),textsofdetailvar

24、char(50),diningtimevarchar(50)5Waiter 表create table waiter(waiterid int primary key not null,waiternamevarchar(50),sexchar(10),telvarchar(50),carnum varchar(50),agechar(10)6 . Memberinfocreate table Memberinfo(MemberIDchar(50),MemberNamevarchar(10),Tel1varchar(40),Addressvarchar(50),ConsumedTime int

25、 not null,ConsumedIntegral int not null)43 输入信息insert into UseInfo values('001','柯南','46903','桌台部经理')insert into UseInfo values('002','犬夜叉','8730294','前台接待员')insert into UseInfo values('003','灰原哀','876409','前

26、台主任')insert into UseInfo values('004','佐助','83JI90','顾客经理')insert into UseInfo values('005','梗桔','9874652','前台接待员')insert into Food values('1001','小炒类','1','8.00','西芹炒牛肉')insert into Food valu

27、es('2001','沙律类','1','6.00','水果沙律')insert into Food values('3001','酥皮类','1','9.00','核桃酥')insert into Food values('4001','川菜类','1','12.00','川味回锅肉')insert into Food values('5001&#

28、39;,'湘菜类','1','11.00','香炸尾猛鱼')insert into Food values('6001','粉面类','1','7.00','桂林米线')insert into Food values('7001','小食类','1','8.00','拔丝芋头')insert into Food values('8001','白灼炖品

29、','1','15.00','灼牛肉丸')insert into Food values('9001','扒类','1','20.00','香煎牛仔扒')insert into desk values('1001','301','空','50.00','甲等','')insert into desk values('1003','303

30、9;,'有人','50.00','甲等','')insert into desk values('2001','201','空','30.00','乙等','')insert into desk values('2002','202','有人','30.00','乙等','')insert into desk values('3001

31、','101','空','20.00','丙等','')insert into desk values('3002','103','有人','20.00','丙等','')insert into guestfood values('西芹炒牛肉','5','170','丁冬','有会员','2011-7-7 16:00'

32、,'3002')insert into guestfood values('川味回锅肉','4','150','方方','','2011-7-8 18:00','2002')insert into guestfood values('桂林米线','3','80','源源','有会员','2011-7-8 20:00','1003')insert into w

33、aiter values('001','丁冬','男','888888','200702','29')insert into waiter values('006','方方','女','777777','200802','27')insert into waiter values('009','源源','男','999999','20

34、0902','26')insert into Memberinfo values('08010121','小王','39875087','福清','6','160')insert into Memberinfo values('08040123','小白','39875081','福州','5','140')insert into Memberinfo values('09

35、060003','小杨','39875082','泉州','4','110')insert into Memberinfo values('10070100','小吴','39875083','莆田','3','90')insert into Memberinfo values('10090019','小陈','39875084','漳州','

36、;2','80')select*from useinfoselect*from deskselect*from foodselect*from guestfoodselect*from memberinfoselect*from waiter44 数据表记录和约束条件的的增加、删除和修改 1)给guestfood 表增加“备注”字段。alter table guestfood add 备注varchar(50) null 2)将“Memberinfo”表中的“电话”字段的数据类型修改为20。alter table Memberinfoalter column tel1

37、varchar(20) 3)更waiter表中,服务员名为“丁冬”的电话号码。UPDATE waiterSET tel='8888899'WHERE waitername='丁冬' 4)删除Memberinfo表中,会员号为“09060003”的客户的信息。DELETE FROM MemberinfoWHERE memberID='09060003'45 实现各种查询 1)简单查询a.查询会员表中的消费次数前三个记录。select top 3 consumedtime,memberID,membername from Memberinfob.查询

38、会员表中的所有客户信息,并按会员号降序排列。select * from Memberinfoorder by memberID DESC 2)模糊查询查询姓王的会员信息。select * from Memberinfowhere membername like '%王%' 3)连接查询 根据guestfood和waiter2个表,查询桌台的编号,价格,菜名,服务员。SELECT guestfood.deskID,guestfood.foodallprice,guestfood.foodname,waiter.waiternameFROM guestfood inner join

39、 waiterON guestfood.waitername=waiter.waitername 4)嵌套查询查找有空位的桌台编号,位置,价格,类型select deskID,deskposition,deskprice,desktype from deskwhere deskID not in(select deskID from guestfood ) 5)其他查询 use 餐饮管理系统godeclare consumedintegral floatselect consumedintegral=consumedintegral from memberinfowhere membernam

40、e='小吴'select *from memberinfo where consumedintegral>consumedintegral go46 建立视图1)查询桌台相关信息的视图,用于前台管理员提供信息给客户参考。IF EXISTS (SELECT * FROM sysobjects WHERE name = 'view_查询桌台')DROP VIEW view_查询桌台GOCREATE VIEW view_查询桌台ASSELECT guestfood.deskID,guestfood.foodallprice,guestfood.foodname,

41、waiter.waiternameFROM guestfood inner join waiterON guestfood.waitername=waiter.waitername-查询语句:select * from view_查询桌台47 建立索引1)desk表中的“desktype”比较频繁搜索,对其建立索引,用于快速查询桌台的位置,状态,价格等信息IF EXISTS (SELECT name FROM sysindexes WHERE name='index_desktype')DROP INDEX desk.index_desktypeCREATE NONCLUSTE

42、RED INDEX index_desktypeon desk(desktype)-查询语句:SELECT * FROM deskwith (INDEX=index_desktype)WHERE desktype like '%乙等%'48 储存过程1)检查登记在入桌信息表里的桌台编号,看看在桌台信息表中“是否住人”一列中是否已经登记了,为了确保桌台信息比较中的信息准确性,建立以下存储过程,把存在入桌信息表中,而没有登记在桌台信息中的桌台编号,“是否住人”补充登记“是”;如果为空的或者桌台编号没有出现在入桌信息里的,则登记“否”。IF EXISTS (SELECT name F

43、ROM sysobjects WHERE name='proc_是否入桌')DROP procedure proc_是否入桌GOcreate procedure proc_是否入桌as update guestfood set 是否入桌='是' where deskid is not null update guestfood set 是否入桌='否' where 是否入桌is null or (deskid not in (select deskid FROM desk )GOexec proc_是否入桌-查看是否执行成功select * from guestfood2)带有游标的存储过程。检测guest表里“定桌价”字段,如果为“空”或为“0”的话,则从桌台类型里把相对应的桌台的价格插入到桌台信息表中。IF EXISTS (SELECT name FROM sysobjects WHERE name='proc_价格')DROP procedure proc_价格GOcreate procedure proc_价格as d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论