餐厅营业管理系统数据库设计报告.docx
- 文档编号:25719859
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:25
- 大小:192.66KB
餐厅营业管理系统数据库设计报告.docx
《餐厅营业管理系统数据库设计报告.docx》由会员分享,可在线阅读,更多相关《餐厅营业管理系统数据库设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
餐厅营业管理系统数据库设计报告
课程设计报告
(2014--2015年度第1学期)
实验名称:
数据库应用课程设计
题目:
餐厅营业管理系统
院 系:
班 级:
学号:
学生姓名:
指导教师:
设计周数:
1 周
成 绩:
日期:
2015年1月23日
一、课程设计的目的与要求
目的
1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,对数据库做进一步的了解,掌握相关知识。
2.进一步加强对数据库运用能力和熟练掌握数据库中的重要知识,了解如何从数据库中读写有关数据。
3.培养分析问题、解决问题的能力。
要求
1.完成数据库系统的安装与设置。
2.根据具体的课题完成需求分析。
3.完成数据库应用系统的逻辑设计。
4.创建数据库、数据表。
5.完成设计报告。
二、设计正文
1.需求分析
1.1调查用户需求
本系统的最终用户为店主以及该店的各个管理人员。
根据我们日常生活中的经验,结合对自己周边餐馆员工的咨询和对餐厅营业的调查,得出用户的下列实际要求:
1.1.1基本功能需求
本系统用于餐厅日常的营业管理,主要面向于餐厅的管理阶层用于对餐厅的销售状况进行全方位的了解。
日常管理包含以下几方面的信息:
Ø前台销售的基本信息
客户每次进行消费,所花费的金额都会以账单的形式被记录下来。
前台销售管理员主要将账单的信息输入系统,再由系统存入数据库这都是餐厅销售的重要信息。
Ø采购的基本信息
采购信息是餐厅的资本输出的重要记录,将采购信息存入数据库可以进行营业额的计算,统计销售情况。
正确分析餐厅的真实情况,进行热门菜品分析进而选择适合客户口味的食材,提高餐厅体验度。
Ø员工的基本信息
餐厅拥有很多的员工,每个人分配有不同的角色,参与不同的工作,员工又有自己不同的职位。
员工的基本信息是非常重要的,首先餐厅营业必须确保自身的安全,再者餐厅需要每个员工工作才能正常工作,员工是餐厅运作的基本。
Ø日常维修的基本信息
每个餐厅都需要定期的维修餐厅中的物品,日常使用过程中不免有损坏。
这样就需要分配人去修理,在修理过程中肯定需要修理费用。
这笔花费必选记录下来保存在数据库中,以便日后统计分析。
1.1.2用户对系统的要求
Ø销售管理员
a.信息要求
销售管理员能查询座位的全部信息,并且可以编辑,修改座位信息表的所有字段。
可以查询菜单的基本信息。
填写账单信息而后系统自动计算账单的总价格,并将账单的信息进行保存。
b.处理要求
当座位被占用时,应该及时的修改座位的状态以防给顾客带来困扰。
Ø人事管理员
a.信息要求
能够查询编辑公司人员信息的全部内容,比如可以查看人员的联系方式,但是不允许查看人员的薪资。
将权利分开来,薪资不允许人事管理员看到。
b.处理要求
当人事变动或者人员信息变化时能够对员工信息表修改、删除、增加、查询。
及时的处理人员的基本信息记录。
Ø财务管理员
a.信息要求
能够查看员工考勤信息,查看员工信息,账单信息,维修记录信息,采购信息。
能够查询编辑公司人员工资信息,编辑统计销售信息。
b.处理要求
按照公司的规定时间定期根据考勤记录计算修改员工的基本工资信息。
同时定期统计销售情况,增加信息到统计销售信息。
Ø采购管理员
a.信息要求
可以查看采购信息,查看库存信息和修改菜单信息。
采购管理员根据当时的仓库所有的食材,在菜单上勾选那些菜品在一段时间中不会出现。
b.处理要求
当仓库的食材缺少或者没有时,能够修改、删除、增加菜单信息。
在采购完成后,能增加、修改、插入、查询采购的基本信息。
Ø后勤管理员
a.信息要求
能够增加、修改、插入、查询编辑人员的维修信息的。
b.处理要求
当发生维修记录时,能及时的处理人员的维修信息记录,将信息更新到数据库当中。
Ø系统用户
a.信息要求
可以查看、修改、删除、增加任何信息,但是为了确保数据库的安全性尽量提醒用户是否继续危险操作。
b.处理要求
对于管理员的权限设置应及时,对于数据库的安全性要进行及时处理。
对于过于集中的危险操作要进行限制,数据库要进行定期的维护备份。
c.安全性与完整性要求
安全性要求:
⏹系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
⏹系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
⏹系统应对不同用户设置不同的权限,区分不同的用户,如区分普通管理员,超级管理员;
完整性要求;
⏹各种信息记录的完整性,信息记录内容不能为空;
⏹各种数据间相互的联系的正确性;
⏹相同的数据在不同记录中的一致性。
1.2系统功能的设计和划分
根据如上得到的用户需求,我们将本系统按照所完成的功能分成以下几部分:
第一部分:
销售管理员部分
第二部分:
采购管理员部分
第三部分:
人事管理员部分
第四部分:
财务管理员部分
第五部分:
后勤管理员部分
第六部分:
系统管理员部分
各部分完成的功能如下:
1.2.1销售管理员部分
⏹查询座位信息。
⏹修改座位状态。
⏹查询菜单信息。
⏹插入账单信息。
1.2.2采购管理员部分
⏹插入采购信息。
⏹查询库存信息。
⏹查询、修改、增加、删除菜单信息。
1.2.3人事管理员部分
⏹查询、修改、增加、删除员工基本信息(除薪资)。
1.2.4财务管理员部分
⏹查看员工考勤信息。
⏹查看员工信息。
⏹编辑员工薪资信息。
⏹查看账单信息。
⏹查看维修记录信息。
⏹查看采购信息。
⏹编辑销售统计信息。
1.2.5后勤管理员部分
⏹查询、修改、增加、删除维修信息。
1.2.6系统管理员部分
⏹处理管理员登录。
⏹管理员可以编辑用户信息。
⏹管理员可以设置数据备份。
⏹管理员可以进行安全维护。
图1系统功能图
1.3数据流图
图2前台销售管理数据流图
图3采购管理数据流图
图4人员信息数据流图
图5财务管理数据流图
图6后勤管理数据流
2.概念设计
根据需求分析说明书设计ER图,设计完成的ER图为:
图7总ER图
员工(员工ID,姓名,性别,年龄,身份证号,职务,联系方式,薪资,劳务合同开始日期,劳务合同结束日期)
考勤表(员工ID,日期,工作量百分比)
销售统计(统计ID,统计日期,盈利金额,亏损金额,统计员ID)
维修记录(维修ID,日期,处理花费金额,事件描述,处理人ID)
采购记录(采购ID,日期,采购员ID)
仓库(仓库ID,管理员ID,仓库量,仓库面积,仓库位置)
食材(食材ID,食材名,描述)
食材_仓库(食材ID,仓库ID,数量)
食材_采购(食材ID,采购ID,数量,单价)
菜单(菜单ID,时间,制定人ID)
菜品(菜品ID,菜品名,价格,菜品类型,描述)
菜单_菜品(菜单ID,菜品ID)
账单(流水ID,座位ID,总价格,日期,处理人ID)
座位(座位ID,编号,座位状态)
账单_菜品(流水ID,菜品ID,数量,单价)
注:
实下划线代表主键,点下划线代表外键
3.逻辑设计
3.1关系表设计
将ER图转换为关系模式、要求设计出数据库所有关系表
表1员工信息表(STAFF)
中文含义
字段名
类型
长度
备注
完整性约束
员工ID
staffID
bigint
主键
姓名
name
varchar(50)
50
notnull
性别
sex
varchar
(2)
2
值为“男”或“女”
年龄
age
int
null
身份证号
identityCardID
varchar(50)
50
notnull
职位
position
varchar(100)
100
null
联系方式
phone
varchar(20)
20
notnull
薪资
wage
int
null
劳务合同结束日期
startWorkTime
date
notnull
劳务合同开始日期
startWorkTime
date
null
表2采购表(PURCHASE)
中文含义
字段名
类型
长度
备注
完整性约束
采购ID
purchaseID
bigin
主键
日期
date
date
not null
采购员ID
staffID
bigint
外键
表3食材_采购表(IngredientPurchase)
中文含义
字段名
类型
长度
备注
完整性约束
食材ID
ingredientsID
bigin
主键
采购ID
Pname
bigin
主键
数量
number
float
notnull
单价
price
float
null
表4菜单表(MENU)
中文含义
字段名
类型
长度
备注
完整性约束
菜单ID
menuID
bigint
主键
日期
date
date
notnull
指定人ID
staffID
bigint
外键
表5食品表(FOOD)
中文含义
字段名
类型
长度
备注
完整性约束
菜品ID
foodID
bigint
主键
菜品名
foodName
varchar(50)
50
notnull
价格
price
date
not null
菜品类型
foodType
varchar(50)
50
notnull
描述
description
varchar(100)
100
null
表6维修表(REPAIR)
中文含义
字段名
类型
长度
备注
完整性约束
维修ID
repairID
bigint
主键
日期
date
date
null
处理花费金额
dealMoney
float
null
事件描述
eventDescription
varchar(500)
500
null
处理人ID
staffID
bigint
外键
表7流水表(BILL)
中文含义
字段名
类型
长度
备注
完整性约束
流水ID
billID
bigint
主键
座位ID
seatID
bigint
外键
总价格
allPrice
float
notnull
日期
date
Date
notnull
处理人ID
staffID
bigint
外键
表8考勤表(CHECKWORK)
中文含义
字段名
类型
长度
备注
完整性约束
日期
Uname
date
主键
员工ID
Upassword
bigint
主键
工作量百分比
workPercentage
float
notnull
表9销售统计表(SALE)
中文含义
字段名
类型
长度
备注
完整性约束
统计ID
saleID
bigint
主键
日期
date
date
notnull
盈利金额
profitMoney
float
notnull
亏损金额
lossMoney
float
notnull
统计员ID
staffID
bigint
外键
表10仓库表(REPERTORY)
中文含义
字段名
类型
长度
备注
完整性约束
仓库ID
repertoryID
bigint
主键
仓库容量
capacity
float
null
仓库面积
area
float
null
仓库位置
position
varchar(100)
100
notnull
管理人ID
staffID
bigint
外键
表11账单菜品关系表(BILLFOOD)
中文含义
字段名
类型
长度
备注
完整性约束
流水ID
billID
bigint
主键
菜品ID
foodID
float
null
数量
number
float
null
单价
price
varchar(100)
100
notnull
表12系统用户表(UserSystem)
中文含义
字段名
类型
长度
备注
完整性约束
用户ID
userID
bigint
主键
密码
password
varchar(30)
30
not null
用户类型
userType
varchar(50)
50
notnull
表13食材_仓库表(IngredientRepertory)
中文含义
字段名
类型
长度
备注
完整性约束
食材ID
repertoryID
bigint
主键
仓库ID
capacity
float
主键
数量
area
float
not null
表14食材表(INGREDIENTS)
中文含义
字段名
类型
长度
备注
完整性约束
食材ID
ingredientsID
bigint
主键
食材名
ingredientNmae
varchar(50)
50
not null
描述
description
varchar(100)
100
null
表15食材_仓库表(SEAT)
中文含义
字段名
类型
长度
备注
完整性约束
座位ID
seatID
bigint
主键
编号
number
int
notnull
座位状态
seatState
varchar
(2)
not null
表16菜单菜品关系表(MENU)
中文含义
字段名
类型
长度
备注
完整性约束
菜单ID
menuID
bigint
主键
菜品ID
foodID
bigint
主键
以上关系模式均为BCNF。
图8建立check约束图
图9系统关系图
3.2视图设计
为了方便程序查询,建立了如下用户视图:
●当前菜单信息视图(菜品名,价格,菜品类型,描述)
SELECT dbo.FOOD.foodName,dbo.FOOD.price,dbo.FOOD.foodType,dbo.FOOD.description
FROMdbo.FOOD INNERJOINdbo.MENUFOOD ONdbo.FOOD.foodID=dbo.MENUFOOD.foodIDCROSSJOINdbo.MENU
WHERE (dbo.FOOD.foodIDIN(SELECTfoodIDFROM dbo.MENUFOODASMENUFOOD_1
WHERE (menuID=(SELECTTOP
(1)menuID
FROM dbo.MENUAS MENU_1))))
●历史账单信息视图(流水ID,菜品名,数量,总价格,日期,处理人ID)
SELECTdbo.BILL.billID, dbo.BILL.date,dbo.BILL.staffID,dbo.BILLFOOD.foodID, ﻩﻩdbo.BILLFOOD.number,dbo.BILLFOOD.price,dbo.BILL.seatID
FROM dbo.BILLINNERJOINdbo.BILLFOODONdbo.BILL.billID =dbo.BILLFOOD.billID
●当前库存信息视图(仓库ID,食材名,数量,管理员ID)
SELECTdbo.IngredientRepertory.repertoryID,dbo.IngredientRepertory.ingredientsID, dbo.INGREDIENTS.ingredientNmae,dbo.IngredientRepertory.number, dbo.INGREDIENTS.description
FROMdbo.IngredientRepertoryINNERJOIN dbo.INGREDIENTSONdbo.IngredientRepertory.ingredientsID=dbo.INGREDIENTS.ingredientsID INNERJOIN
dbo.REPERTORY ON dbo.IngredientRepertory.repertoryID=dbo.REPERTORY.repertoryID
●采购信息视图(采购ID,食材ID,数量,单价,日期,采购员ID)
SELECTdbo.PURCHASE.purchaseID,dbo.IngredientPurchase.ingredientsID, dbo.INGREDIENTS.ingredientNmae,dbo.IngredientPurchase.number,dbo.IngredientPurchase.price,dbo.INGREDIENTS.description
FROMdbo.IngredientPurchaseINNERJOINdbo.INGREDIENTSONdbo.IngredientPurchase.ingredientsID=dbo.INGREDIENTS.ingredientsIDINNER JOIN
dbo.PURCHASEON dbo.IngredientPurchase.purchaseID=dbo.PURCHASE.purchaseID
图10视图设计图
3.3存储过程及触发器设计
存储过程设计:
存储过程是一组为了完成特定功能的SQL语句集合,是经过编译后存储在服务器上并在服务器端运行的程序模块。
一旦创建,此后可以多次调用,极大地提高了程序的效率。
●输入开始日期和初始日期查询之间的账单:
CREATE PROCEDURE search_bill
--Addthe parametersforthe storedprocedurehere
ﻩ@billStartdate,
@billEnddate
AS
select*frombillView1
where billView1.datebetween @billStartand @billEnd
●输出销售统计营业额亏损的记录
CREATE PROCEDUREsearch_badSale
--Addtheparametersforthe storedprocedurehere
AS
select *fromSALE
whereprofitMoney <lossMoney
触发器设计:
触发器是数据库服务器中发生事件是自动执行一种特殊的存储过程,执行必须要在相应的时间发生。
●创建人员工资限制,如果小于1000设置为1000,
createtriggermoney
ondbo.staff
forafter insert ,update
as
if (selectdbo.staff.wagefromdbo.staff)<1000
begin
print 'thewagesetistoolow'
rollback transaction
end
●在插入,更新员工信息表的时候,开始工作时间不能大于结束时间
USE[database]
GO
IFEXISTS(
SELECT *
FROMsys.triggers
WHEREname =N'time_protect'
ANDparent_class_desc = N'DATABASE'
)
ﻩDROPTRIGGERuserSystem_protect ONDATABASE
GO
CREATETRIGGERtime_protectONstaff
afterinsert,update
AS
DECLARE@startWorkTimedate
DECLARE@endWorkTimedate
select@startWorkTime=startWorkTime from STAFF
select@endWorkTime= endWorkTime fromSTAFF
IF@startWorkTime>@endWorkTime
BEGIN
PRINT 'Yourtime is error!
'
ROLLBACKTRANSACTION
END
GO
4.物理设计
确定数据库物理结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
1、系统自动在每个表的主码上建立索引。
2、数据库的存储位置:
D:
\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\database.mdf
日志存储位置:
D:
\ProgramFiles\MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\database_log.ldf
3、在MENU表menuID列上建立MENU_desc索引设置menuID降序:
create uniqueindexmenu_desconmenu (menuIDdesc);
5.安全性以及权限管理
数据库的备份和恢复:
1.完整备份:
BACKUPDATABASE[database] TODISK =N'D:
\Program Files\Microsoft SQLServer\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\database.bak'WITHRETAINDAYS=7,NOFORMAT,NOINIT, NAME=N'database-完整数据库 备份',SKIP,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 餐厅 营业 管理 系统 数据库 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)