一、需求分析1.系统分析随着时代的进步,如今各个服务行业也都逐渐发展壮大起来,尤其是食堂服务业,其在服务范围、服务数量和服务内容上都有着非常大的膨胀幅度,因此如何对如此复杂而频繁的服务活动进行管理就属于“食堂管理”的内容。
其主要包括:职员资料管理、物品管理、消费内容管理、席位管理、客户评价管理,工资管理等,它是现代食堂管理中的一个重要组成部分。
2.功能需求分析“食堂管理” 包括很多项目,以前食堂管理人员要记录大量的用户消费内容,然后通过计算器进行一系列的加减乘除运算,最后得出一位顾客的“应付金额”,这样做的效率和准确度可想而知。
如果使用计算机来实现对食堂服务业的智能管理,从选择菜、酒水、主食,到计算“应付金额”,最后到打印消费内容,计算机都可以很准确、很快捷地进行处理,这些都是“食堂管理系统”的功能。
一个完善的“食堂管理系统”可以很好地管理食堂服务业的各项内容,这样不仅能更好地服务顾客,而且可以为经营者创造更大的利润。
针对每部分的具体功能我们又做了如下的详细分析:二、涉及的表职员资料物品表席位表销售记录评价情况工资表SQL 命令创建数据库create database 食堂管理系统on primary (name= stglxt_data,'e:\stglxt_data.mdf')log on (name=stglxt_log1,'e:\stglxt _log.ldf')创建表create table 职员资料(职员编号char(6) not null primary keycheck(职员编号like'[0-9][0-9][0-9][0-9][0-9][0-9]'),姓名varchar(20) not null,职位varchar(20) not null,性别char(2) not null check(性别='男' or 性别='女') default '男',民族varchar(8) null default '汉族',出生日期datetime not null,身份证号码char(18) not null unique,婚姻状况char(4) not null check(婚姻状况='已婚' or 婚姻状况='未婚') default '未婚',联系电话varchar(11) not null unique,备注varchar(30))create table 物品表(物品编号 char(6) not null primary key,物品名字 varchar(20) not null,所属类型 char(4) not null check(所属类型='主食'or 所属类型='酒水' or 所属类型='其他') default '主食',价格 money not null,是否售馨 char(2) not null check(是否售馨='是' or 是否售馨='否') default '否',品牌 varchar(30),备注 varchar(30))create table 席位表(席位号char(6) not null primary key,负责人编号char(6) not null foreign key references 职员资料(职员编号) on update cascade on delete cascade,人数int not null,状态char(4) not null check(状态='使用' or 状态='预定' or 状态='空闲') default '空闲',日期datetime not null,备注varchar(30))create table 销售记录(类型char(4) not null check(类型='主食'or 类型='酒水' or 类型='其他') default '主食',数量int not null,方式char(4) not null check(方式='现场' or 方式='预定' or 方式='外卖') default '现场',金额money not null,日期datetime not null,备注varchar(30))create table 评价情况(职员编号 char(6) not null foreign key references 职员资料(职员编号) on update cascade on delete cascade,评价级别char(4) not null check(评价级别in ('优','良','一般','差')) default '优',日期datetime not null default getdate(),备注varchar(30))create table 工资表(职员编号char(6) not null foreign key references 职员资料(职员编号) on update cascade on delete cascade,工资money not null,日期datetime not null,备注varchar(30))所有表的截图如下:三、视图设计1.为了方便查看职员的评价与对应的职员,所以要建一个“职员信息与评价表”,以显示职员的评价的同时,还可以看到该职员的一些个人信息。
create view 职员信息与评价表asselect 姓名,性别,职位,联系电话,评价级别,日期from 职员资料 a, 评价情况bwhere a.职员编号=b. 职员编号2.为了方便查看物品的销售记录以及物品的信息,所以建立一个“物品信息与销售情况表”。
create view 物品信息与销售情况表asselect 物品名字,所属类型,价格,品牌,方式,日期,数量from 销售记录 a, 物品表 bwhere a.类型=b. 所属类型3.为了在职员信息中,可以方便看到该职员的工资,所以建立一个“职员信息工资表”create view 职员信息工资表asselect 姓名,性别,职位,联系电话,工资(元),日期from 职员资料 a, 工资表 bwhere a.职员编号=b. 职员编号四、存储过程1.创建一个存储过程,通过给定职位可查看该职位所有职员的个人信息。
create proc 查询所指定职位的职员基本信息@职位 varchar(20)asselect 职位,姓名,性别,民族,籍贯,出生日期,身份证号,婚姻状况,家庭住址,联系电话,备注from 职员资料where职位=@职位2.创建一个存储过程,通过给定职员编号可删除该职员create proc 删除所指定的职员@职员编号 char(6)aswhere 职员编号=@职员编号五、触发器1.在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的好评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现优秀!”create trigger 优评备注 on 评价情况after insertasdeclare @a varchar,@b intbeginselect @a=职员编号 form inserted where 评价级别=’优select @b=count(*)form 评价情况 where 评价级别=’优’and 职员编号= @a and dateadd(day,-1,getdate())<30 and dateadd() group by 评价级别,职员编号if @b>10beginupdate 职员资料set 备注=”工作中表现优秀!”where 职员编号=@aendelseend2.在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的差评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现糟糕!”。
create trigger 优评备注 on 评价情况after insertasdeclare @c varchar,@d intbeginselect @c=职员编号 form inserted where 评价级别=’差select @d=count(*)form 评价情况 where 评价级别=’差’and 职员编号= @c and dateadd(day,-1,getdate())<30 and dateadd() group by 评价级别,职员编号if @d>10beginupdate 职员资料set 备注=”工作中表现糟糕!”endelseend六、权限设置我们所设计的教师档案管理系统根据实际情况会用到四类用户,有食堂所有者、管理者、普通员工,还有客户。
食堂所有者在这管理系统种具有全部权限,食堂的管理人员具有职员管理,物品管理,营业管理,评价管理的添加删改权限。
食堂普通职员具有席位管理的添加删改权限,方便对日常工作的管理。
客户具有在评价情况表上添加对职员的评价情况的权限,但是不能修改和删除。
1、新建了三个用户分别代表四类用户,所有者、管理者、普通员工,客户,分别设有密码。
命令如下:exec sp_addlogin '所有者','111'exec sp_addlogin '管理者','222'exec sp_addlogin '普通员工','333'exec sp_addlogin '客户','444'2、授予所有者所有权限给 '所有者' 授予食堂管理系统数据库访问权,并给其分配为该数据库的拥有者:db_owner,在该数据库中拥有所有权限;命令如下:use 食堂管理系统exec sp_grantdbaccess '所有者'goexec sp_addrolemember 'db_owner','所有者'2、通过所有者用户给普通员工授予权限,命令如下:use 食堂管理系统exec sp_grantdbaccess '普通员工'gogrant select on 席位表 to 普通员工3、通过所有者用户给管理者授予权限,命令如下:use 食堂管理系统exec sp_grantdbaccess '管理者'gogrant select,insert,update on 职员资料 to 管理者grant select,insert,update on 物品表 to 管理者grant select,insert,update on 销售记录 to 管理者grant select,insert,update on 评价情况 to 管理者七、数据备份与恢复设计为了防止数据可能在运行过程中出现某些意外的错误而导致数据丢失等严重问题,数据库的备份与恢复在实际的数据库系统开发中有着十分重要的意义。