小型餐饮管理系统数据库设计报告.docx

上传人:b****7 文档编号:9561452 上传时间:2023-02-05 格式:DOCX 页数:22 大小:234.87KB
下载 相关 举报
小型餐饮管理系统数据库设计报告.docx_第1页
第1页 / 共22页
小型餐饮管理系统数据库设计报告.docx_第2页
第2页 / 共22页
小型餐饮管理系统数据库设计报告.docx_第3页
第3页 / 共22页
小型餐饮管理系统数据库设计报告.docx_第4页
第4页 / 共22页
小型餐饮管理系统数据库设计报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

小型餐饮管理系统数据库设计报告.docx

《小型餐饮管理系统数据库设计报告.docx》由会员分享,可在线阅读,更多相关《小型餐饮管理系统数据库设计报告.docx(22页珍藏版)》请在冰豆网上搜索。

小型餐饮管理系统数据库设计报告.docx

小型餐饮管理系统数据库设计报告

 

第一章设计任务与要求

 

目的及意义:

此小型餐饮业管理系统的设计主要是为了方便管理,对于各个进出账目,支出和收入的管理便于系统化,在每月汇总计算中分析运营趋势和餐馆的发展方向进行一定的规划。

通过各个月的盈利进行对比,分析那种方式更适合餐馆的有利运营和更好地服务顾客。

实现对餐馆内部各种管理的电子化、自动化,提高各个模块之间的办公效率,为高质量餐馆服务提供保证。

任务:

1.能够实现对该系统进行管理的人员的权限限制;

2.使餐馆能够及时并灵活的对菜品品种其价位等进行管理;

3.为餐馆提供从客户点餐到结算等一系列操作的服务,使之能简单易行、方便、清楚地进行管理

 

第二章系统功能分析

一.功能需求:

餐饮管理系统中主要包括对以下几种管理:

账单管理,财务管理,订餐管理,菜品管理,系统管理。

(1)系统管理:

系统管理包括用户名和密码,主要用于用户登陆界面登陆和查询。

(2)账单管理:

账单管理包括账单号和餐台,每一个餐台对应一个一个账单号,通过餐台号的记录来对对应的餐台进行记账管理,即就是记录每一个餐台的消费金额。

账单管理是财务管理的一个小分支,是服务于财务管理的。

(3)财务管理:

包括账单号,时间和账目。

账目用于记录账单号的消费金额及时间,以便用于结算和汇总。

每日的结算要通过对每个餐台号的消费金额汇总来记录,然后由每日的结算汇总得出每月的结算。

帐务系统功能的完整性。

一旦该系统正式运行,餐厅每日营业帐和全部往来客户帐务的操作结算都将依靠计算机,该系统面对当前餐饮业各种复杂的结算要求应具有很强的应变能力。

(4)订餐管理:

订餐管理仅包括单价。

订餐管理是便于顾客订餐和账单管理时对各个菜品消费金额的记录,这样便于账单管理和财务汇总。

(5)菜品管理:

菜品管理包括菜名,菜品类别和菜品品种。

菜品管理便于顾客点菜和记录各个餐台的消费记账,菜品品种也便于餐馆的食材采购。

二.数据需求:

账单管理中账单号是主键,每一个餐台对应一个账单号。

财务管理中账单号是主键,每一个账单号都有对应的时间和账目记录。

订餐管理中单价就是主键。

菜品管理中菜名是主键。

系统管理中用户名是主键。

三.性能需求:

该餐饮系统操作简单方便可适应各类中小型餐馆。

 

第三章系统功能模块设计

一.在该系统功能分析的基础上,考虑PowerBuilder程序编制的特点,得到如下功能模块图。

图1系统功能模块图

二.数据库设计

1.概念结构设计

2.逻辑结构设计

3.数据库实施

1)数据库及表结构的创建

设本系统使用的数据库名为小型餐饮业管理系统,根据已设计的关系模式及各模式的完整性要求,现在就可以在SQLServer6.x数据库系统中实现这些逻辑结构。

下面是创建基本表的SQL语句:

/*============================================================*/

/*Table:

CAIPINGL*/

/*============================================================*/

createtableCAIPINGL

CPGL_NAMEchar(20)notnull,

CPGL_DANJIAintegernotnull,

CPGL_LEIBIEchar(8)null,

CPGL_PINGZHONGchar(8)null,

CPGL_DIANCAIintegernull,

constraintPK_CAIPINGLprimarykey(CPGL_NAME,CPGL_DANJIA)

go

/*============================================================*/

/*Table:

XTGL*/

/*============================================================*/

createtableXTGL

USERNAMEchar(20)notnull,

PASSWORDchar(8)notnull,

constraintPK_XTGLprimarykey(USERNAME,PASSWORD)

go

/*============================================================*/

/*Table:

ZHANGDAGL*/

/*============================================================*/

createtableZHANGDAGL

ZHANGDAN_NUMBERnumericnotnull,

ZHANGDAN_CANTAInumericnull,

CAI_ZHANGDAN_NUMBERnumericnull,

constraintPK_ZHANGDAGLprimarykey(ZHANGDAN_NUMBER)

go

/*============================================================*/

/*Index:

RELATION_383_FK*/

/*============================================================*/

createindexRELATION_383_FKonZHANGDAGL(CAI_ZHANGDAN_NUMBER)

go

/*============================================================*/

/*Table:

CAIWUGL*/

/*============================================================*/

createtableCAIWUGL

ZHANGDAN_NUMBERnumericnotnull,

CAIWU_TIMEtimestampnull,

CAIWU_AMOUNTchar(10)null,

constraintPK_CAIWUGLprimarykey(ZHANGDAN_NUMBER)

go

/*============================================================*/

/*Table:

DINGCANGL*/

/*============================================================*/

createtableDINGCANGL

ZHANGDAN_NUMBERnumericnotnull,

DCGL_NAMEchar(20)notnull,

DCGL_DANJIAintnotnull,

constraintPK_DINGCANGLprimarykey(ZHANGDAN_NUMBER,DCGL_NAME,DCGL_DANJIA)

go

/*============================================================*/

/*Index:

RELATION_451_FK*/

/*============================================================*/

createindexRELATION_451_FKonDINGCANGL(ZHANGDAN_NUMBER)

go

建立相关触发器,执行级联删除

*============================================================*/

/*Databasename:

MODEL_1*/

/*DBMSname:

MicrosoftSQLServer6.x*/

/*Createdon:

2010-1-2118:

15*/

/*============================================================*/

/*Inserttrigger"ti_caiwugl"fortable"CAIWUGL"*/

createtriggerti_caiwuglonCAIWUGLforinsertas

begin

declare

@numrowsint,

@numnullint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Parent"ZHANGDAGL"mustexistwheninsertingachildin"CAIWUGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

if(selectcount(*)

fromZHANGDAGLt1,insertedt2

wheret1.ZHANGDAN_NUMBER=t2.ZHANGDAN_NUMBER)!

=@numrows

begin

select@errno=30002,

@errmsg='Parentdoesnotexistin"ZHANGDAGL".Cannotcreatechildin"CAIWUGL".'

gotoerror

end

end

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Updatetrigger"tu_caiwugl"fortable"CAIWUGL"*/

createtriggertu_caiwuglonCAIWUGLforupdateas

begin

declare

@numrowsint,

@numnullint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Parent"ZHANGDAGL"mustexistwhenupdatingachildin"CAIWUGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

if(selectcount(*)

fromZHANGDAGLt1,insertedt2

wheret1.ZHANGDAN_NUMBER=t2.ZHANGDAN_NUMBER)!

=@numrows

begin

select@errno=30003,

@errmsg='"ZHANGDAGL"doesnotexist.Cannotmodifychildin"CAIWUGL".'

gotoerror

end

end

/*Modifyparentcodeof"CAIWUGL"forallchildrenin"ZHANGDAGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

updateZHANGDAGL

setCAI_ZHANGDAN_NUMBER=i1.ZHANGDAN_NUMBER

fromZHANGDAGLt2,insertedi1,deletedd1

wheret2.CAI_ZHANGDAN_NUMBER=d1.ZHANGDAN_NUMBER

and(i1.ZHANGDAN_NUMBER!

=d1.ZHANGDAN_NUMBER)

end

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Deletetrigger"td_caiwugl"fortable"CAIWUGL"*/

createtriggertd_caiwuglonCAIWUGLfordeleteas

begin

declare

@numrowsint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Deleteallchildrenin"ZHANGDAGL"*/

deleteZHANGDAGL

fromZHANGDAGLt2,deletedt1

wheret2.CAI_ZHANGDAN_NUMBER=t1.ZHANGDAN_NUMBER

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Inserttrigger"ti_dingcangl"fortable"DINGCANGL"*/

createtriggerti_dingcanglonDINGCANGLforinsertas

begin

declare

@numrowsint,

@numnullint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Parent"ZHANGDAGL"mustexistwheninsertingachildin"DINGCANGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

if(selectcount(*)

fromZHANGDAGLt1,insertedt2

wheret1.ZHANGDAN_NUMBER=t2.ZHANGDAN_NUMBER)!

=@numrows

begin

select@errno=30002,

@errmsg='Parentdoesnotexistin"ZHANGDAGL".Cannotcreatechildin"DINGCANGL".'

gotoerror

end

end

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Updatetrigger"tu_dingcangl"fortable"DINGCANGL"*/

createtriggertu_dingcanglonDINGCANGLforupdateas

begin

declare

@numrowsint,

@numnullint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Parent"ZHANGDAGL"mustexistwhenupdatingachildin"DINGCANGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

if(selectcount(*)

fromZHANGDAGLt1,insertedt2

wheret1.ZHANGDAN_NUMBER=t2.ZHANGDAN_NUMBER)!

=@numrows

begin

select@errno=30003,

@errmsg='"ZHANGDAGL"doesnotexist.Cannotmodifychildin"DINGCANGL".'

gotoerror

end

end

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Inserttrigger"ti_zhangdagl"fortable"ZHANGDAGL"*/

createtriggerti_zhangdaglonZHANGDAGLforinsertas

begin

declare

@numrowsint,

@numnullint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Parent"CAIWUGL"mustexistwheninsertingachildin"ZHANGDAGL"*/

ifupdate(CAI_ZHANGDAN_NUMBER)

begin

select@numnull=(selectcount(*)

frominserted

whereCAI_ZHANGDAN_NUMBERisnull)

if@numnull!

=@numrows

if(selectcount(*)

fromCAIWUGLt1,insertedt2

wheret1.ZHANGDAN_NUMBER=t2.CAI_ZHANGDAN_NUMBER)!

=@numrows-@numnull

begin

select@errno=30002,

@errmsg='Parentdoesnotexistin"CAIWUGL".Cannotcreatechildin"ZHANGDAGL".'

gotoerror

end

end

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Updatetrigger"tu_zhangdagl"fortable"ZHANGDAGL"*/

createtriggertu_zhangdaglonZHANGDAGLforupdateas

begin

declare

@numrowsint,

@numnullint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

return

/*Parent"CAIWUGL"mustexistwhenupdatingachildin"ZHANGDAGL"*/

ifupdate(CAI_ZHANGDAN_NUMBER)

begin

select@numnull=(selectcount(*)

frominserted

whereCAI_ZHANGDAN_NUMBERisnull)

if@numnull!

=@numrows

if(selectcount(*)

fromCAIWUGLt1,insertedt2

wheret1.ZHANGDAN_NUMBER=t2.CAI_ZHANGDAN_NUMBER)!

=@numrows-@numnull

begin

select@errno=30003,

@errmsg='"CAIWUGL"doesnotexist.Cannotmodifychildin"ZHANGDAGL".'

gotoerror

end

end

/*Modifyparentcodeof"ZHANGDAGL"forallchildrenin"CAIWUGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

updateCAIWUGL

setZHANGDAN_NUMBER=i1.ZHANGDAN_NUMBER

fromCAIWUGLt2,insertedi1,deletedd1

wheret2.ZHANGDAN_NUMBER=d1.ZHANGDAN_NUMBER

and(i1.ZHANGDAN_NUMBER!

=d1.ZHANGDAN_NUMBER)

end

/*Modifyparentcodeof"ZHANGDAGL"forallchildrenin"DINGCANGL"*/

ifupdate(ZHANGDAN_NUMBER)

begin

updateDINGCANGL

setZHANGDAN_NUMBER=i1.ZHANGDAN_NUMBER

fromDINGCANGLt2,insertedi1,deletedd1

wheret2.ZHANGDAN_NUMBER=d1.ZHANGDAN_NUMBER

and(i1.ZHANGDAN_NUMBER!

=d1.ZHANGDAN_NUMBER)

end

return

/*Errorshandling*/

error:

raiserror@errno@errmsg

rollbacktransaction

end

go

/*Deletetrigger"td_zhangdagl"fortable"ZHANGDAGL"*/

createtriggertd_zhangdaglonZHANGDAGLfordeleteas

begin

declare

@numrowsint,

@errnoint,

@errmsgvarchar(255)

select@numrows=@@rowcount

if@numrows=0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1