1、目 录摘 要3第1章 系统概述41.1 项目背景41.2 编写目的41.3 软件定义41.4 开发环境5第2章 系统分析62.1 需求分析6 2.1.1 调查用户需求6 2.1.2 用户对系统的要求62.2 系统功能的设计和划分8 2.2.1 销售管理员部分9 2.2.2 采购管理员部分9 2.2.3 人事管理员部分9 2.2.4 财务管理员部分9 2.2.5 后勤管理员部分9 2.2.6 系统管理员部分10 2.2.7 系统功能图102.3 数据流图10 2.3.1 销售管理数据流图10 2.3.2 采购管理数据流图11 2.3.3 人员信息管理数据流图11 2.3.4 购物管理数据流图12
2、2.4 数据字典12第3章 数据库设计153.1 数据库设计E-R图153.2 关系模型163.3 逻辑设计17 3.3.1 关系表设计173.4 视图设计263.5 存储过程及触发器设计273.6 物理设计293.7 安全性以及权限管理29第4章 结束语29参考文献29*学院课程设计报告摘 要 设计报告论述了分析、开发、设计一个咖啡之翼餐饮管理系统的过程。该系统十分明确的实现了咖啡之翼餐饮管理的需求,可以提高餐饮管理的效率,该系统可以记录餐饮的详细信息,使咖啡之翼餐饮工作规范化,科学化。结合计算机技术,采用SQL Server 2008或SQL Server 2012 开发而成。 设计报告介
3、绍了课题相关内容,并通过设计分析,将系统划分为多个功能模块,有员工信息、餐饮订单详情、仓库存货量、进货详情、收支详情等。着重叙述了员工信息与收支详情这两个功能模块的功能实现,这些模块基本上满足了用户的管理功能,系统中的各个模块相互连接,通过查询、新增、删除等功能完成了餐饮的收支详情以及员工的工作详情等,将咖啡之翼餐饮的所有信息以数据的形式显示出来。通过对咖啡之翼餐饮店的业务过程分析,进行业务流程图、数据流程图、E-R图及其规范化,进而数据库逻辑设计、物理设计等方面的设计,创建一个方便易用、简洁友好的数据库系统。通过数据库对各方面信息进行管理能提高参与管理的效率,增强企业的竞争力,同时也是企业的
4、科学化、正规化管理的要求。关键词:咖啡之翼、员工信息、餐饮订单详情、仓库信息、收支详情、逻辑设计、物理设计、E-R图。第1章 系统概述1.1 项目背景餐饮业是指以商业赢利为目的的餐饮服务机构。随着经济的发展,餐饮业已呈现出高速发展的状态。但是,在快速发展的同时,餐饮业在日常经营管理中大都是以人为主体的,需要很多的人力、物力、财力,且效率不是很高,在系统运营时也可能产生人为的失误。传统的餐饮管理工作既繁琐也不利于分析企业的经营状况,在提供决策信息方面也难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。1.2 编写目的在餐饮管理中引入数据库这一信息管理技术,具有人
5、工管理所无法比拟的优点。例如:统计结账快速、安全保密性好、可靠性高、存储量大、寿命长、成本低等。通过对餐饮店管理信息方面进行数据库建立,能够极大地提高餐饮管理的效率,增强企业的竞争力,同时也是企业的科学化、正规化管理,与世界接轨的重要条件。1.3 软件定义在本数据库的开发中,主要涉及的软件如下:Microsoft Office Word 2016Microsoft SQL Sever 20121.4 开发环境 Microsoft Windows 10 第2章 系统分析2.1需求分析2.1.1 调查用户需求 本系统的最终用户为店主以及该店的各个管理人员。根据我们日常生活中的经验,结合对自己周边餐
6、馆员工的咨询和对餐厅营业的调查,得出用户的下列要求:基本功能需求:本系统用于餐厅日常的营业管理,主要面向于餐厅的管理阶层用于对餐厅的销售状况进行全方位的了解。日常管理包含以下几方面的信息:(1)前台销售的基本信息客户每次进行消费,所花费的金额都会以账单的形式被记录下来。前台销售管理员主要将账单的信息输入系统,再由系统存入数据库这都是餐厅销售的重要信息。(2)采购的基本信息采购信息是餐厅的资本输出的重要记录,将采购信息存入数据库可以进行营业额的计算,统计销售情况。正确分析餐厅的真实情况,进行热门菜品分析进而选择适合客户口味的食材,提高餐厅体验度。(3)员工的基本信息餐厅拥有很多的员工,每个人分配
7、有不同的角色,参与不同的工作,员工又有自己不同的职位。员工的基本信息是非常重要的,首先餐厅营业必须确保自身的安全,再者餐厅需要每个员工工作才能正常工作,员工是餐厅运作的基本。(4)日常维修的基本信息每个餐厅都需要定期的维修餐厅中的物品,日常使用过程中不免有损坏。这样就需要分配人去修理,在修理过程中肯定需要修理费用。这笔花费必选记录下来保存在数据库中,以便日后统计分析。2.1.2 用户对系统的要求(1)销售管理信息要求 销售管理员能查询座位的全部信息,并且可以编辑,修改座位信息表的所有字段。可以查询菜单的基本信息。填写账单信息而后系统自动计算账单的总价格,并将账单的信息进行保存。处理要求 当座位
8、被占用时,应该及时的修改座位的状态以防给顾客带来困扰。(2)人事管理信息要求 人事管理员能够查询编辑公司人员信息的全部内容,比如可以查看人员的联系方式,但是不允许查看人员的薪资。将权利分开来,薪资不允许人事管理员看到。处理要求 当人事变动或者人员信息变化时能够对员工信息表修改、删除、增加、查询。及时的处理人员的基本信息记录。(3)财务管理信息要求 财务管理员能够查看员工考勤信息,查看员工信息,账单信息,维修记录信息,采购信息。能够查询编辑公司人员工资信息,编辑统计销售信息。处理要求 按照公司的规定时间定期根据考勤记录计算修改员工的基本工资信息。同时定期统计销售情况,增加信息到统计销售信息。(4
9、)采购管理信息要求 采购管理员可以查看采购信息,查看库存信息和修改菜单信息。采购管理员根据当时的仓库所有的食材,在菜单上勾选那些菜品在一段时间中不会出现。处理要求 当仓库的食材缺少或者没有时,能够修改、删除、增加菜单信息。在采购完成后,能增加、修改、插入、查询采购的基本信息。(5)后勤管理信息要求 后勤管理员能够增加、修改、插入、查询编辑机器的详细维修信息。处理要求 当发生维修记录时,能及时的处理人员的维修信息记录,将信息更新到数据库当中。(6)系统用户信息要求 可以查看、修改、删除、增加任何信息,但是为了确保数据库的安全性尽量提醒用户是否继续危险操作。处理要求 对于管理员的权限设置应及时,对
10、于数据库的安全性要进行及时处理。对于过于集中的危险操作要进行限制,数据库要进行定期的维护备份。安全与完整性要求 A、安全性要求:n a、系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户 设置其密码,保证用户身份不被盗用;n b、系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处 理数据的类别和内容;n c、系统应对不同用户设置不同的权限,区分不同的用户,如区分普通管 理员,超级管理员; B、完整性要求;n a、各种信息记录的完整性,信息记录内容不能为空;n b、各种数据间相互的联系的正确性;n c、相同的数据在不同记录中的一致性。2.2 系统功能的设计和划分根据如上得到的
11、用户需求,我们将本系统按照所完成的功能分成以下几部分:第一部分:销售管理员部分第二部分:采购管理员部分第三部分:人事管理员部分第四部分:财务管理员部分第五部分:后勤管理员部分第六部分:系统管理员部分各部分完成的功能如下:2.2.1销售管理员部分n查询座位信息。n修改座位状态。n查询菜单信息。n插入账单信息。2.2.2采购管理员部分n插入采购信息。n查询库存信息。n查询、修改、增加、删除菜单信息。2.2.3人事管理员部分n查询、修改、增加、删除员工基本信息(除薪资)。2.2.4财务管理员部分n查看员工考勤信息。n查看员工信息。n编辑员工薪资信息。n查看账单信息。n查看维修记录信息。n查看采购信息
12、n编辑销售统计信息。2.2.5后勤管理员部分n查询、修改、增加、删除维修信息。2.2.6系统管理员部分n处理管理员登录。n管理员可以编辑用户信息。n管理员可以设置数据备份。 管理员可以进行安全维护。2.2.7系统功能图员工信息管理账单管理工资计算销售统计用户添加系统管理人事管理采购管理财务管理后勤管理安全维护数据备份维修管理权限设置菜单管理采购记录销售管理咖啡之翼餐饮营业管理2.3 数据流图2.3.1 销售管理数据流图2.3.2 采购管理数据流图2.3.3 人员信息数据流图2.3.4 财务管理数据流图2.4 数据字典数据项表数据项名称说明数据类型长度取值范围用户编号唯一标识顾客char12数
13、字联系方式跟顾客联系varchar25数字用户姓名区别不同的顾客varchar10汉字或英语顾客类型判断是否有会员优惠资格char4是、否顾客性别区别男女char2男、女菜单编号唯一标识菜肴int数字菜肴名区别不同的菜肴varchar20汉字或英语价格每种菜肴应收的金额 int数字备注职工编号唯一标识员工int数字职工姓名区别不同的职工char10汉字或英语职称判断员工级别varchar20汉字或英语工资职工收入char20数字联系方式联系员工char20数字账单编号唯一标识菜单int菜编号区别不同的菜单int价钱顾客应付的总金额char15数字份数顾客对几份账单进行付款int备注序号唯一区别
14、不同的订单int预订人提交订单的名字char10汉字或英语预订桌号顾客要求的桌子号int账单号编排不同的订单int用餐人数订单用餐人数int收银单编号顾客结账所执单号int应收金额顾客所要付的总金额char20数字折扣会员或者拥有会员卡的顾客的福利char20数字实收金额减去折扣顾客所要付的金额char20数字收银时间工作人员为顾客结账时间datatime数字备注账单编号编排不同的订单int消费金额顾客实付的金额char20数字用餐持续时间餐厅服务时间datatime数字客户类型判断顾客会员级别char4汉字或英语数据结构表编号数据结构名属性01用户顾客编号、顾客名、联系方式、顾客性别、顾客类
15、型02菜单菜编号、菜名、价格、备注03职员职工编号、姓名、职称、工资、联系方式04账单账单编号、菜编号、价钱、份数05预订序号、预订人、桌号、账单号、用餐人数、应付款、备注06收银单收银单编号、应收金额、折扣、实收金额、收银时间07账单帐目编号、消费金额、用餐持续时间、客户类型第3章 数据库设计3.1根据需求分析说明书设计ER图,设计完成的ER图为:销售统计食材包含 N m n坐位采购统计采购表 1占用 1 n 考勤表账单结算工作1 1 1 n菜品员工包含 1 n n m 1 1 1菜单制定维修管理菜单食材 n菜品包含n n n m n包含维修记录仓库m3.2 转化为关系模型员工(员工ID,姓
16、名,性别,年龄,身份证号,职务,联系方式,薪资,劳务合同开始日期,劳务合同结束日期)考勤表(员工ID,日期,工作量百分比)销售统计(统计ID,统计日期,盈利金额,亏损金额,统计员ID)维修记录(维修ID,日期,处理花费金额,事件描述,处理人ID)采购记录(采购ID,日期,采购员ID)仓库(仓库ID,管理员ID,仓库量,仓库面积,仓库位置)食材(食材ID,食材名,描述)食材_仓库(食材ID,仓库ID,数量)食材_采购(食材ID,采购ID,数量,单价)菜单(菜单ID,时间,制定人ID)菜品(菜品ID,菜品名,价格,菜品类型,描述)菜单_菜品(菜单ID,菜品ID)账单(流水ID,座位ID,总价格,日
17、期,处理人ID)座位(座位ID,编号,座位状态)账单_菜品(流水ID,菜品ID,数量,单价)3.3 逻辑设计3.3.1 关系表设计将ER图转换为关系模式、要求设计出数据库所有关系表 员工信息表(STAFF)中文含义字段名类型长度备注完整性约束员工IDstaffIDbigint主键姓名namevarchar(50)50not null性别sexvarchar(2)2值为“男”或“女”年龄ageintnull身份证号identityCardIDvarchar(50)50not null职位positionvarchar(100)100null联系方式phonevarchar(20)20not nu
18、ll薪资wageintnull劳务合同结束日期startWorkTimedatenot null劳务合同开始日期endWorkTimedatenull表2采购表(PURCHASE)中文含义字段名类型长度备注完整性约束采购IDpurchaseIDbigin主键日期datedatenot null采购员IDstaffIDbigint外键表3食材_采购表(IngredientPurchase)中文含义字段名类型长度备注完整性约束食材IDingredientsIDbigin主键采购IDPnamebigin主键数量numberfloatnot null单价pricefloatnull表4菜单表(MENU
19、)中文含义字段名类型长度备注完整性约束菜单IDmenuIDbigint主键日期datedatenot null指定人IDstaffIDbigint外键表5食品表(FOOD)中文含义字段名类型长度备注完整性约束菜品IDfoodIDbigint主键菜品名foodNamevarchar(50)50not null价格pricedate not null菜品类型foodTypevarchar(50)50not null描述descriptionvarchar(100)100null表6维修表(REPAIR)中文含义字段名类型长度备注完整性约束维修IDrepairIDbigint主键日期datedate
20、null处理花费金额dealMoneyfloatnull事件描述eventDescriptionvarchar(500)500null处理人IDstaffIDbigint外键表7流水表(BILL)中文含义字段名类型长度备注完整性约束流水IDbillIDbigint主键座位IDseatIDbigint外键总价格allPricefloat not null日期dateDatenot null处理人IDstaffIDbigint外键 表8考勤表(CHECKWORK)中文含义字段名类型长度备注完整性约束日期Unamedate主键员工IDUpasswordbigint主键工作量百分比workPercen
21、tagefloatnot null 表9销售统计表(SALE)中文含义字段名类型长度备注完整性约束统计IDsaleIDbigint主键日期datedate not null盈利金额profitMoneyfloatnot null亏损金额lossMoneyfloatnot null统计员IDstaffIDbigint外键表10仓库表(REPERTORY)中文含义字段名类型长度备注完整性约束仓库IDrepertoryIDbigint主键仓库容量capacityfloatnull仓库面积areafloatnull仓库位置positionvarchar(100)100not null管理人IDstaf
22、fIDbigint外键表11账单菜品关系表(BILLFOOD)中文含义字段名类型长度备注完整性约束流水IDbillIDbigint主键菜品IDfoodIDfloatnull数量numberfloatnull单价pricevarchar(100)100not null 表12系统用户表(UserSystem)中文含义字段名类型长度备注完整性约束用户IDuserIDbigint主键密码passwordvarchar(30)30not null用户类型userTypevarchar(50)50not null 表13食材_仓库表(IngredientRepertory)中文含义字段名类型长度备注完整
23、性约束食材IDrepertoryIDbigint主键仓库IDcapacityfloat主键数量areafloatnot null 表14食材表(INGREDIENTS)中文含义字段名类型长度备注完整性约束食材IDingredientsIDbigint主键食材名ingredientNamevarchar(50)50not null描述descriptionvarchar(100)100null表15食材_仓库表(SEAT)中文含义字段名类型长度备注完整性约束座位IDseatIDbigint主键编号numberintnot null 以上关系模式均为BCNF。3.4视图设计l 为了方便程序查询,建
24、立了如下用户视图:l 当前菜单信息视图(菜品名,价格,菜品类型,描述)l SELECT dbo.FOOD.foodName, dbo.FOOD.price, dbo.FOOD.foodType, dbo.FOOD.descriptionl FROM dbo.FOOD INNER JOIN dbo.MENUFOOD ON dbo.FOOD.foodID = dbo.MENUFOOD.foodID CROSS JOIN dbo.MENUl WHERE (dbo.FOOD.foodID IN (SELECT foodID FROM dbo.MENUFOOD AS MENUFOOD_1l WHERE
25、menuID = (SELECT TOP (1) menuIDl FROM dbo.MENU AS MENU_1)l 历史账单信息视图(流水ID,菜品名,数量,总价格,日期,处理人ID)l SELECT dbo.BILL.billID, dbo.BILL.date, dbo.BILL.staffID, dbo.BILLFOOD.foodID, dbo.BILLFOOD.number, dbo.BILLFOOD.price, dbo.BILL.seatIDl FROM dbo.BILL INNER JOIN dbo.BILLFOOD ON dbo.BILL.billID = dbo.BILLF
26、OOD.billIDl 当前库存信息视图(仓库ID,食材名,数量,管理员ID)l SELECT dbo.IngredientRepertory.repertoryID,dbo.IngredientRepertory.ingredientsID, dbo.INGREDIENTS.ingredientNmae, dbo.IngredientRepertory.number, dbo.INGREDIENTS.descriptionl FROM dbo.IngredientRepertory INNER JOIN dbo.INGREDIENTS ON dbo.IngredientRepertory.i
27、ngredientsID = dbo.INGREDIENTS.ingredientsID INNER JOINl dbo.REPERTORY ON dbo.IngredientRepertory.repertoryID = dbo.REPERTORY.repertoryIDl 采购信息视图(采购ID,食材ID,数量,单价,日期,采购员ID)l SELECT dbo.PURCHASE.purchaseID,dbo.IngredientPurchase.ingredientsID, dbo.INGREDIENTS.ingredientNmae,dbo.IngredientPurchase.numb
28、er,dbo.IngredientPurchase.price, dbo.INGREDIENTS.descriptionl FROM dbo.IngredientPurchase INNER JOIN dbo.INGREDIENTS ON dbo.IngredientPurchase.ingredientsID = dbo.INGREDIENTS.ingredientsID INNER JOINl dbo.PURCHASE ON dbo.IngredientPurchase.purchaseID = dbo.PURCHASE.purchaseID3.5存储过程及触发器设计l 存储过程设计:l
29、存储过程是一组为了完成特定功能的SQL语句集合,是经过编译后存储在服务器上并在服务器端运行的程序模块。一旦创建,此后可以多次调用,极大地提高了程序的效率。l 输入开始日期和初始日期查询之间的账单:l CREATE PROCEDURE search_bill l - Add the parameters for the stored procedure herel billStart date ,l billEnd datel ASl select * from billView1l where billView1.date between billStart and billEndl 输出销售
30、统计营业额亏损的记录l CREATE PROCEDURE search_badSalel - Add the parameters for the stored procedure herel ASl select * from SALEl where profitMoney lossMoneyl 触发器设计:l 触发器是数据库服务器中发生事件是自动执行一种特殊的存储过程,执行必须要在相应的时间发生。l 创建人员工资限制,如果小于1000设置为1000, l create trigger moneyl on dbo.staffl for after insert , updatel asl i
31、f (select dbo.staff.wage from dbo.staff ) endWorkTimel BEGINl PRINT Your time is error ! l ROLLBACK TRANSACTIONl ENDl GO3.6物理设计l 确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。l 系统自动在每个表的主码上建立索引。l 数据库的存储位置:l D:ProgramFilesMicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATA database.m
32、dfl 日志存储位置:l D:ProgramFilesMicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATAdatabase_log.ldfl 在MENU表menuID列上建立MENU_desc索引设置menuID降序:create unique index menu_desc on menu (menuID desc);3.7安全性以及权限管理l 数据库的备份和恢复: 在数据库文件选项中选择要备份的数据库inn,右键单击,选择任务-备份选项出现数据库备份对话框,备份类型选择完整,在目标项中选择添加,弹出选择备份目标,在磁盘上的目标中选择备份数据库的
33、目标文件夹,选择好路径后,将文件名取为inn,点击确定后,完成备份。l 完整备份: 在数据库文件选项中单击右键,选择还原数据库,弹出还原数据库对话框,在目标数据库中选择要还原的数据库inn,在还原的源项中选择源设备,在弹出的指定备份中选择备份位置,选择已备份的文件后,单击确定,在选择用于还原的备份集中选定要还原的文件,单击确定,完成数据库还原。l BACKUP DATABASE database TO DISK = N D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackupdatabase.bak WITH RE
34、TAINDAYS = 7, NOFORMAT, NOINIT, NAME = Ndatabase-完整 数据库 备份, SKIP, NOREWIND, NOUNLOAD, STATS = 10l GOl 恢复:l Restore database database from disk = D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackupdatabase.bak with recovery第4章 结束语本次课程设计我选择了餐厅营业管理系统的题目,在为期一周的数据库设计的实践课程中,通过调查需求,概念结构设计,
35、逻辑结构设计,物理设,项目编码等数据库设计流程,学会了如何根据用户的需求,来设计一个合理,健壮,高效的数据库。在设计和编码过程中遇到很多没有见过的问题,通过自己上网查找资料来解决设计中遇到的问题,学到了很多。参考文献【1】 萨师煊,王珊。数据库系统概论。高等教育出版社, 第3版. 2000年2月【2】 黄维通。SQL Server 2000简明教材。清华大学版社, 第1版. 2002年3月【3】郑阿奇,顾韵华。ASP.NET实用教程。电子工业出版社, 第1版. 2005年3月.【4】高云,崔艳春。清华大学出版社,SQL Server 2008 数据库技术实用教程。【5】明日科技编著。清华大学出版社,SQL Server 从入门到精通。30