连锁餐饮的数据库后台系统.docx
《连锁餐饮的数据库后台系统.docx》由会员分享,可在线阅读,更多相关《连锁餐饮的数据库后台系统.docx(15页珍藏版)》请在冰豆网上搜索。
连锁餐饮的数据库后台系统
连
锁
餐
饮
的
数
据
库
后
台
系
统
需求分析
企业结构
市场部
(1)职能:
主管公司市场开发工作。
(2)所需数据:
员工信息,会员信息,会员与之对应服务人员信息表。
(3)输出数据:
员工信息(操作后),会员信息(操作后),会员与之对应服务人
员信息表(操作后)。
数据储存
员工信息
数据流
数据流
员工信息(读取后)
会员
市场部
会员信息
(4)组织结构:
与之
对应
服务
人员
信息
处理
市场部
会员信息(操作后)
市场部
经理
经理助
理
职员 预备职
员
(5)权限:
仅允许对员工信息,会员信息进行读取,对会员与之对应服务人员信
息可进行读取删改。
人事部
(1)职能:
主管公司人员调配及预备干部储备。
(2)所需数据:
员工信息,员工考勤表。
(3)输出信息:
员工信息(操作后),员工考勤表(操作后)。
员工信息
员工考勤
数据储存
数据流 数据流
人事部
处理
员工信息(操作后)
员工考勤(操作后)
(4)组织结构:
人事部
人事部
经理
经理助
理
职员 预备职
员
(5)权限:
允许对员工信息和员工考勤信息进行读取删改。
财务部
(1)职能:
主管公司财务工作,调度每日支出和收益。
每月财务状况,由会计
汇总成财务报表,上交董事会。
(2)所需数据:
菜单,订单。
(3)输出信息:
日收支,季度收支,年收支。
数据储存
数据流
日收支
数据流
订单财务部
处理
季度收支
年收支
(4)组织结构:
财务部
会计
(5)权限:
对菜单,订单只能进行读取。
前台
(1)职能:
接待来客及电话访客,向顾客传达餐厅内座位预订情况。
(2)所需数据:
订单,菜单,座位预定表。
(3)输出信息:
座位预定表(操作后)。
数据储存
数据流
数据流
座位预定表前台处
理
座位预定表
(操作后)
(4)组织结构:
前台
前台接待员
(5)权限:
可对座位预定表进行删改,对订单只能读取。
概念结构设计
数据实体结构
1.员工实体描述
2.会员实体描述
3.座位实体描述
4.菜单实体描述
连锁餐饮的数据库后台系统结构
系统分布结构
一.市场部管理子系统流程图
二.人事部管理子系统流程图
三. 财务部管理子系统流程图
四.前台管理子系统流程图
代码实现
建表部分:
一. 员工信息表的建立
1.代码:
CREATE TABLE 员工信息
(
Number int primary key,
Name char(10),
Sex char(10),
Age int,
R_and_P char(100),/*成就*/
W_and_A char(10), /*工龄*/
Position char(10), /*职位*/
);
2.信息录入:
二.会员信息表的建立
1.代码:
CREATE TABLE 会员信息
(
Number char(10)primary key,
Name char(10),
Sex char(10),
Age int,
M_and_R char(100),/*会员级别*/
M_and_S char(10), /*会员积分*/
)
CREATE TRIGGER T_INSERT_会员信息 /*查询会员积分的打折情况*/
ON 会员信息
FOR INSERT
AS
BEGIN TRANSACTION
--检查数据的合法性:
是否存在该会员积分
IF NOT EXISTS (
SELECT M_and_S
FROM 会员信息
WHERE Number IN (SELECT Number FROM INSERTED)
)
BEGIN--返回错误提示
RAISERROR('错误!
该会员积分不存在',16,1);
ROLLBACK
RETURN
END
IF EXISTS (
SELECT M_and_S
FROM 会员信息
WHERE Number IN (SELECT Number FROM INSERTED) AND
M_and_S >= 500
)
BEGIN
--返回提示
RAISERROR('会员为普通会员,折扣为 9 折',16,1);
--回滚事务
ROLLBACK
RETURN
END
IF EXISTS (
SELECT M_and_S
FROM 会员信息
WHERE Number IN (SELECT Number FROM INSERTED) AND
M_and_S >= 1500
)
BEGIN
--返回提示
RAISERROR('会员为白银会员,折扣为 8.5 折',16,1);
--回滚事务
ROLLBACK
RETURN
END
IF EXISTS (
SELECT M_and_S
FROM 会员信息
WHERE Number IN (SELECT Number FROM INSERTED) AND
M_and_S >=2500
)
BEGIN
--返回提示
RAISERROR('会员为白金会员,折扣为 8 折',16,1);
--回滚事务
ROLLBACK
RETURN
END
IF EXISTS (
SELECT M_and_S
FROM 会员信息
WHERE Number IN (SELECT Number FROM INSERTED) AND
M_and_S >= 3500
)
BEGIN
--返回提示
RAISERROR('会员为钻石会员,折扣为 7.5 折',16,1);
--回滚事务
ROLLBACK
RETURN
END;
2.信息录入:
三.员工考勤表的建立
1.代码:
create table 员工考勤表
(
Date char(10),
Number char(10) ,
primary key(Date,Number),
sign_in char(10),/*签到状态*/
)
2.信息录入:
四.餐厅订座表
1.代码:
create table 餐厅订座表
(
Number char(10), /*座位号*/
Condition char(10), /*使用状态*/
DAY DateTime, /*使用日期*/
primary key(DAY,Number),
S_N int, /*座位对应的服务员*/
foreign key(S_N) references 员工信息(Number)
)
2.信息录入:
5.订单
1.代码:
Create table 订单
(
Number char(10)Primary key, /*订单号*/
D_N char(10), /*座位号*/
Dishs char(10), /*菜号*/
Day DateTime, /*点菜日期*/
Much char(10), /*份数*/
Foreign key(Dishs) references 菜单(Number)
)
2.信息录入:
6.菜单
1.代码:
Create table 菜单
(
Number char(10)primary key,
Cost int,
)
2.信息录入:
7.会员与服务人员对应表
1.代码:
Create table 会员与服务人员对应表
(
Number char(10),
Name char(10),
S_F char(10),
Foreign key(S_F) reference 员工信息(Number)
Foreign key(Number) reference 会员信息(Number)
)
3.截图:
视图部分:
一.人事部员工查询视图
1.代码:
Create view 人事部(Number,Name,Sex,Age,R_and_P char,W_and_A char,)
AS
Select Number,Name,Sex,Age,R_and_P char,W_and_A char
From 员工信息
2.截图:
二.前台查询座位使用情况的视图
Create view 前台查询(Number,Condition,DAY)
AS
Select Number,Condition,DAY
From 餐厅订座表
2.截图:
三.市场部查询会员与之对应服务人员信息视图
1.代码:
Create view 市场部查询(Number,Name,S_F)
AS
Select Number,Name,S_F
From 会员与服务人员对应表
2 截图:
4.前台查询座位消费情况视图
1.代码:
Create view 座位消费(Number,D_N,Dishs,Day,Much,Cost )
AS
Select 订单.Number,菜单.Number,D_N,Dishs,Day,Much,Cost,count(Cost)
From 菜单,订单
Where 订单.Number=菜单.Number and Day='时间'
Group by Number
2.截图:
5.经理查询座位与对应服务生视图
1.代码:
Create view 座位与对应服务生(Number,S_N,DAY)
AS
Select Number,S_N,DAY
From 餐厅订座表
2.截图:
6.人事部查询员工考勤视图
1.代码:
Create view 员工考勤
AS
Select Date ,Number,sign_in /*签到状态*/
From 员工考勤表
2.截图:
授予权限部分:
1.授予市场部查询修改会员与对应服务员工信息的权利
Grant update(Number,Name,S_F),select
On table 会员与服务人员对应表
To 市场部;
2.授予人事部对员工信息与员工考勤表的全部权利
Grant all privileges
On table 员工信息,员工考勤表
To 人事部;
3.授予前台查询修改座位预定表的权利
Grant uptate(Condition,DAY),select
On table 座位预定表
To 前台;
4.授予前台查询座位消费情况的权利
Grant select
On 订单
To 前台
数据库功能测试部分:
一. 人事部员工查询员工是服务员职位的人员
1.代码:
select Number,Name
from 员工信息
where Position='服务员'
2.截图:
二. 前台查询 001 号座位在 2012-12-01 09:
30:
30 时的使用情况
1.代码:
select Number,DAY
from 餐厅订座表
where DAY='2012-12-01 09:
30:
30.000'and Number='001'
2.截图:
三.市场部查询编号为 1 号会员与之对应服务人员信息
1.代码:
select S_F
from 会员与服务人员对应表
where Number='1';
2.截图:
四.经理查询 001 号座位与对应服务生
1.代码:
select S_N
from 餐厅订座表
where Number='001'and DAY='2012-12-01 09:
30:
30.000';
2.截图:
五.人事部查询 001 号员工考勤
1.代码:
select count(sign_in)
from 员工考勤表
where Number='1';
2.截图: