您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 食堂管理系统-数据库设计
2012年3月14日课题:数据库设计(食堂管理系统)目的和要求:1.掌握数据库需求分析2.掌握数据库概念结构设计与逻辑结构设计方法3.掌握创建数据库、表、约束、视图、存储过程、触发器的方法4.掌握权限的设置方法5.掌握备份与恢复的方法操作内容:设计数据库课题:食堂管理系统一、数据需求分析:在搜集资料和分析用户应用要求的基础上,形成该数据库系统的应用需求说明;二、涉及到的表:通过需求分析确定表结构。1、分几个表2、表中需哪些列,列名、数据类型、长度;3、可否为空值;(表示未知、不可用或将在以后添加数据)4、需使用的约束:主键,外键,默认值,check,唯一值约束。三、创建视图四、存储过程五、触发器六、权限设置七、数据备份与恢复设计一、需求分析1.系统分析随着时代的进步,如今各个服务行业也都逐渐发展壮大起来,尤其是食堂服务业,其在服务范围、服务数量和服务内容上都有着非常大的膨胀幅度,因此如何对如此复杂而频繁的服务活动进行管理就属于“食堂管理”的内容。其主要包括:职员资料管理、物品管理、消费内容管理、席位管理、客户评价管理,工资管理等,它是现代食堂管理中的一个重要组成部分。2.功能需求分析“食堂管理”包括很多项目,以前食堂管理人员要记录大量的用户消费内容,然后通过计算器进行一系列的加减乘除运算,最后得出一位顾客的“应付金额”,这样做的效率和准确度可想而知。如果使用计算机来实现对食堂服务业的智能管理,从选择菜、酒水、主食,到计算“应付金额”,最后到打印消费内容,计算机都可以很准确、很快捷地进行处理,这些都是“食堂管理系统”的功能。一个完善的“食堂管理系统”可以很好地管理食堂服务业的各项内容,这样不仅能更好地服务顾客,而且可以为经营者创造更大的利润。针对每部分的具体功能我们又做了如下的详细分析:职员管理管理物品管理席位管理营业管理食堂管理系统评价管理工资管理二、涉及的表职员资料属性类型大小是否为空约束职员编号char6否主键。6位数姓名varchar20否职位varchar20否性别Char2否,默认“男”男或女民族varchar10否,默认“汉族”籍贯varchar10否,默认“广东”出生日期datetime否身份证号char18否婚姻状况char4否,默认“未婚”未婚或已婚家庭地址varchar30否联系电话varchar11否备注varchar30是物品表属性类型大小是否为空约束物品编号char6否主键。6位数物品名字varchar20否所属类型char4否,默认“主食”主食、酒水或其他价格/元int否是否售馨char2否,默认“否”是或否品牌varchar30是备注varchar30是席位表属性类型大小是否为空约束席位号char6否主键,6位数负责人编号外键人数int否,默认“8”1至20状态char4否,默认“空闲”正在使用,预定或空闲日期datetime否备注varchar30是销售记录属性类型大小是否为空约束类型外键数量int否方式varchar10否,默认“现场”现场、预定或外卖日期datetime否金额/元int否备注varchar30是评价情况属性类型大小是否为空约束职员编号外键评价级别char4否,默认“优”优、良、一般、差日期datetime否,默认当天备注varchar30是工资表属性类型大小是否为空约束职员编号外键工资/元int否日期datetime否备注varchar30是SQL命令创建数据库createdatabase食堂管理系统onprimary(name=stglxt_data,filename='e:\stglxt_data.mdf')logon(name=stglxt_log1,filename='e:\stglxt_log.ldf')创建表createtable职员资料(职员编号char(6)notnullprimarykeycheck(职员编号like'[0-9][0-9][0-9][0-9][0-9][0-9]'),姓名varchar(20)notnull,职位varchar(20)notnull,性别char(2)notnullcheck(性别='男'or性别='女')default'男',民族varchar(8)nulldefault'汉族',出生日期datetimenotnull,身份证号码char(18)notnullunique,婚姻状况char(4)notnullcheck(婚姻状况='已婚'or婚姻状况='未婚')default'未婚',联系电话varchar(11)notnullunique,备注varchar(30))createtable物品表(物品编号char(6)notnullprimarykey,物品名字varchar(20)notnull,所属类型char(4)notnullcheck(所属类型='主食'or所属类型='酒水'or所属类型='其他')default'主食',价格moneynotnull,是否售馨char(2)notnullcheck(是否售馨='是'or是否售馨='否')default'否',品牌varchar(30),备注varchar(30))createtable席位表(席位号char(6)notnullprimarykey,负责人编号char(6)notnullforeignkeyreferences职员资料(职员编号)onupdatecascadeondeletecascade,人数intnotnull,状态char(4)notnullcheck(状态='使用'or状态='预定'or状态='空闲')default'空闲',日期datetimenotnull,备注varchar(30))createtable销售记录(类型char(4)notnullcheck(类型='主食'or类型='酒水'or类型='其他')default'主食',数量intnotnull,方式char(4)notnullcheck(方式='现场'or方式='预定'or方式='外卖')default'现场',金额moneynotnull,日期datetimenotnull,备注varchar(30))createtable评价情况(职员编号char(6)notnullforeignkeyreferences职员资料(职员编号)onupdatecascadeondeletecascade,评价级别char(4)notnullcheck(评价级别in('优','良','一般','差'))default'优',日期datetimenotnulldefaultgetdate(),备注varchar(30))createtable工资表(职员编号char(6)notnullforeignkeyreferences职员资料(职员编号)onupdatecascadeondeletecascade,工资moneynotnull,日期datetimenotnull,备注varchar(30))所有表的截图如下:三、视图设计1.为了方便查看职员的评价与对应的职员,所以要建一个“职员信息与评价表”,以显示职员的评价的同时,还可以看到该职员的一些个人信息。createview职员信息与评价表asselect姓名,性别,职位,联系电话,评价级别,日期from职员资料a,评价情况bwherea.职员编号=b.职员编号2.为了方便查看物品的销售记录以及物品的信息,所以建立一个“物品信息与销售情况表”。createview物品信息与销售情况表asselect物品名字,所属类型,价格,品牌,方式,日期,数量from销售记录a,物品表bwherea.类型=b.所属类型3.为了在职员信息中,可以方便看到该职员的工资,所以建立一个“职员信息工资表”createview职员信息工资表asselect姓名,性别,职位,联系电话,工资(元),日期from职员资料a,工资表bwherea.职员编号=b.职员编号四、存储过程1.创建一个存储过程,通过给定职位可查看该职位所有职员的个人信息。createproc查询所指定职位的职员基本信息@职位varchar(20)asselect职位,姓名,性别,民族,籍贯,出生日期,身份证号,婚姻状况,家庭住址,联系电话,备注from职员资料where职位=@职位2.创建一个存储过程,通过给定职员编号可删除该职员createproc删除所指定的职员@职员编号char(6)asdelete职员资料where职员编号=@职员编号五、触发器1.在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的好评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现优秀!”createtrigger优评备注on评价情况afterinsertasdeclare@avarchar,@bintbeginselect@a=职员编号forminsertedwhere评价级别=’优select@b=count(*)form评价情况where评价级别=’优’and职员编号=@aanddateadd(day,-1,getdate())30anddateadd()groupby评价级别,职员编号if@b10beginupdate职员资料set备注=”工作中表现优秀!”where职员编号=@aendelseend2.在评价情况表中添加记录后,统计某职员的优评数量,在本月1号到到添加日期这段时间的差评达到10次将在职员资料表中为该职员的备注栏添加上“工作中表现糟糕!”。createtrigger优评备注on评价情况afterinsertasdeclare@cvarchar,@dintbeginselect@c=职员编号forminsertedwhere评价级别=’差select@d=count(*)form评价情况where评价级别=’差’and职员编号=@canddateadd(day,-1,getdate())30anddateadd()groupby评价级别,职员编号if@d10beginupdate职员资料set备注=”工作中表现糟糕!”where职员编号=@aendelseend六、权限设置我们所设计的教师档案管理系统根据实际情况会用到四类用户,有食堂所有者、管理者、普通员工,还有客户。食堂所有者在这管理系统种具有全部权限,食堂的管理人员具有职员管理,物品管理,营业管理,评价管理的添加删改权限。食堂普通职员具有席位管理的添加删改权限,方便对日常工作的管理。客户具有在评价情况表上添加对职员的评价情况的权限,但是不能修改和删除。1、新建了三个用户分别代表四类用户,所有者、管理者、普通员工,客户,分别设有密码。命令如下:execsp_addlogin'所有者','111'execsp_addlogin'管理者','222'execsp_addlogin'普通员工','333'execsp_addlogin'客户','444'2、授予所有者所有权限给'所有者'授予食堂管理系统数据库访问权,并给其分配为该数据库的拥有者:db_owner,在该数据库中拥有所有权限;命令如下:use食堂管理系统execsp_grantdbaccess'所有者'goexecsp_addrolemember'db_owner','所有者'2、通过所有者用户给普通员工授予权限,命令如下:use食堂管理系统execsp_grantdbaccess'普通员工'gograntselecton席位表to普通员工3、通过所有者用户给管理者授予权限,命令如下:use食堂管理系统execsp_grantdbaccess'管理者'gograntselect,insert,updateon职员资料to管理者grantselect,insert,updateon物品表to管理者grantselect,insert,updateon销售记录to管理者grantselect,insert,updateon评价情况t
本文标题:食堂管理系统-数据库设计
链接地址:https://www.777doc.com/doc-5006650 .html