小型餐飲管理系統(tǒng) 數(shù)據(jù)庫設(shè)計報告
《小型餐飲管理系統(tǒng) 數(shù)據(jù)庫設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《小型餐飲管理系統(tǒng) 數(shù)據(jù)庫設(shè)計報告(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、2022年-2023年建筑工程管理行業(yè)文檔 齊魯斌創(chuàng)作 第一章 設(shè)計任務(wù)與要求 目的及意義: 此小型餐飲業(yè)管理系統(tǒng)的設(shè)計主要是為了方便管理,對于各個進(jìn)出賬目,支出和收入的管理便于系統(tǒng)化,在每月匯總計算中分析運(yùn)營趨勢和餐館的發(fā)展方向進(jìn)行一定的規(guī)劃。通過各個月的盈利進(jìn)行對比,分析那種方式更適合餐館的有利運(yùn)營和更好地服務(wù)顧客。實現(xiàn)對餐館內(nèi)部各種管理的電子化、自動化,提高各個模塊之間的辦公效率,為高質(zhì)量餐館服務(wù)提供保證。 任務(wù): 1.能夠?qū)崿F(xiàn)對該系統(tǒng)進(jìn)行管理的人員的權(quán)限限制; 2.使餐館能夠及時并靈活的對菜品品種其價位等進(jìn)行管理; 3.為餐館提供從客戶點(diǎn)餐到
2、結(jié)算等一系列操作的服務(wù),使之能簡單易行、方便、 清楚地進(jìn)行管理 第二章 系統(tǒng)功能分析 一.功能需求:餐飲管理系統(tǒng)中主要包括對以下幾種管理:賬單管理,財務(wù)管理,訂餐管理,菜品管理,系統(tǒng)管理。 (1)系統(tǒng)管理:系統(tǒng)管理包括用戶名和密碼,主要用于用戶登陸界面登陸和查詢。 (2)賬單管理:賬單管理包括賬單號和餐臺,每一個餐臺對應(yīng)一個一個賬單號,通過餐臺號的記錄來對對應(yīng)的餐臺進(jìn)行記賬管理,即就是記錄每一個餐臺的消費(fèi)金額。賬單管理是財務(wù)管理的一個小分支,是服務(wù)于財務(wù)管理的。 (3)財務(wù)管理:包括賬單號,時間和賬目。賬目用于記錄賬
3、單號的消費(fèi)金額及時間,以便用于結(jié)算和匯總。每日的結(jié)算要通過對每個餐臺號的消費(fèi)金額匯總來記錄,然后由每日的結(jié)算匯總得出每月的結(jié)算。帳務(wù)系統(tǒng)功能的完整性。一旦該系統(tǒng)正式運(yùn)行,餐廳每日營業(yè)帳和全部往來客戶帳務(wù)的操作結(jié)算都將依靠計算機(jī),該系統(tǒng)面對當(dāng)前餐飲業(yè)各種復(fù)雜的結(jié)算要求應(yīng)具有很強(qiáng)的應(yīng)變能力。 (4)訂餐管理:訂餐管理僅包括單價。訂餐管理是便于顧客訂餐和賬單管理時對各個菜品消費(fèi)金額的記錄,這樣便于賬單管理和財務(wù)匯總。
4、
5、 (5)菜品管理:菜品管理包括菜名,菜品類別和菜品品種。菜品管理便于顧客點(diǎn)菜和記錄各個餐臺的消費(fèi)記賬,菜品品種也便于餐館的食材采購。 二. 數(shù)據(jù)需求:賬單管理中賬單號是主鍵,每一個餐臺對應(yīng)一個賬單號。財務(wù)管理中賬單號是主鍵,每一個賬單
6、號都有對應(yīng)的時間和賬目記錄。訂餐管理中單價就是主鍵。菜品管理中菜名是主鍵。系統(tǒng)管理中用戶名是主鍵。 三. 性能需求:該餐飲系統(tǒng)操作簡單方便可適應(yīng)各類中小型餐館。 第三章 系統(tǒng)功能模塊設(shè)計 一. 在該系統(tǒng)功能分析的基礎(chǔ)上,考慮PowerBuilder程序編制的特點(diǎn),得到如下功能模塊圖。 小型餐飲業(yè)管理系統(tǒng) 系統(tǒng)管理 賬單管理 訂餐管理 財務(wù)管理 菜品管理 用戶管理 密碼管理 賬單號管理 餐臺管理 訂單查詢 餐臺點(diǎn)餐管理 每日賬目管理 賬目時間管理 菜名管理 菜品管理 菜價管理 類別管理 圖1 系統(tǒng)功能模塊圖
7、二. 數(shù)據(jù)庫設(shè)計 1. 概念結(jié)構(gòu)設(shè)計 2. 邏輯結(jié)構(gòu)設(shè)計 3. 數(shù)據(jù)庫實施 1) 數(shù)據(jù)庫及表結(jié)構(gòu)的創(chuàng)建 設(shè)本系統(tǒng)使用的數(shù)據(jù)庫名為小型餐飲業(yè)管理系統(tǒng),根據(jù)已設(shè)計的關(guān)系模式及各模式的完整性要求,現(xiàn)在就可以在SQL Server 6.x數(shù)據(jù)庫系統(tǒng)中實現(xiàn)這些邏輯結(jié)構(gòu)。 下面是創(chuàng)建基本表的SQL語句: /* ============================================================ */ /* Table: CAIPINGL
8、 */ /* ============================================================ */ create table CAIPINGL ( CPGL_NAME char(20) not null, CPGL_DANJIA integer not null, CPGL_LEIBIE char(8) null , CPGL_PINGZHONG
9、char(8) null , CPGL_DIANCAI integer null , constraint PK_CAIPINGL primary key (CPGL_NAME, CPGL_DANJIA) ) go /* ============================================================ */ /* Table: XTGL */
10、 /* ============================================================ */ create table XTGL ( USERNAME char(20) not null, PASSWORD char(8) not null, constraint PK_XTGL primary key (USERNAME, PASSWORD) ) go /* ========================
11、==================================== */ /* Table: ZHANGDAGL */ /* ============================================================ */ create table ZHANGDAGL ( ZHANGDAN_NUMBER numeric not null, ZHANGDAN_CANTAI numeric
12、 null , CAI_ZHANGDAN_NUMBER numeric null , constraint PK_ZHANGDAGL primary key (ZHANGDAN_NUMBER) ) go /* ============================================================ */ /* Index: RELATION_383_FK */ /* ===============
13、============================================= */ create index RELATION_383_FK on ZHANGDAGL (CAI_ZHANGDAN_NUMBER) go /* ============================================================ */ /* Table: CAIWUGL */ /* ========================================
14、==================== */ create table CAIWUGL ( ZHANGDAN_NUMBER numeric not null, CAIWU_TIME timestamp null , CAIWU_AMOUNT char(10) null , constraint PK_CAIWUGL primary key (ZHANGDAN_NUMBER) ) go /* =======
15、===================================================== */ /* Table: DINGCANGL */ /* ============================================================ */ create table DINGCANGL ( ZHANGDAN_NUMBER numeric not null, DCGL_NAME
16、 char(20) not null, DCGL_DANJIA int not null, constraint PK_DINGCANGL primary key (ZHANGDAN_NUMBER, DCGL_NAME, DCGL_DANJIA) ) go /* ============================================================ */ /* Index: RELATION_451_FK
17、 */ /* ============================================================ */ create index RELATION_451_FK on DINGCANGL (ZHANGDAN_NUMBER) go 建立相關(guān)觸發(fā)器,執(zhí)行級聯(lián)刪除 * ============================================================ */ /* Database name: MODEL_1
18、 */ /* DBMS name: Microsoft SQL Server 6.x */ /* Created on: 2010-1-21 18:15 */ /* ============================================================ */ /* Insert trigger "ti_caiwugl" for table "CAIWUGL" */ create trigger ti_caiwugl on C
19、AIWUGL for insert as begin declare @numrows int, @numnull int, @errno int, @errmsg varchar(255) select @numrows = @@rowcount if @numrows = 0 return /* Parent "ZHANGDAGL" must exist when inserting a child in "CAIWUGL" */
20、 if update(ZHANGDAN_NUMBER) begin if (select count(*) from ZHANGDAGL t1, inserted t2 where t1.ZHANGDAN_NUMBER = t2.ZHANGDAN_NUMBER) != @numrows begin select @errno = 30002, @errmsg = 'Parent does not exist in
21、 "ZHANGDAGL". Cannot create child in "CAIWUGL".' goto error end end return /* Errors handling */ error: raiserror @errno @errmsg rollback transaction end go /* Update trigger "tu_caiwugl" for table "CAIWUGL" */ create trigger tu_caiwugl o
22、n CAIWUGL for update as begin declare @numrows int, @numnull int, @errno int, @errmsg varchar(255) select @numrows = @@rowcount if @numrows = 0 return /* Parent "ZHANGDAGL" must exist when updating a child in "CAIWU
23、GL" */ if update(ZHANGDAN_NUMBER) begin if (select count(*) from ZHANGDAGL t1, inserted t2 where t1.ZHANGDAN_NUMBER = t2.ZHANGDAN_NUMBER) != @numrows begin select @errno = 30003, @errmsg = '"
24、ZHANGDAGL" does not exist. Cannot modify child in "CAIWUGL".' goto error end end /* Modify parent code of "CAIWUGL" for all children in "ZHANGDAGL" */ if update(ZHANGDAN_NUMBER) begin update ZHANGDAGL set CAI_Z
25、HANGDAN_NUMBER = i1.ZHANGDAN_NUMBER from ZHANGDAGL t2, inserted i1, deleted d1 where t2.CAI_ZHANGDAN_NUMBER = d1.ZHANGDAN_NUMBER and (i1.ZHANGDAN_NUMBER != d1.ZHANGDAN_NUMBER) end return /* Errors handling */ error: raiserror @errno @errm
26、sg rollback transaction end go /* Delete trigger "td_caiwugl" for table "CAIWUGL" */ create trigger td_caiwugl on CAIWUGL for delete as begin declare @numrows int, @errno int, @errmsg varchar(255) select @numrows = @@rowcount if @numrows
27、 = 0 return /* Delete all children in "ZHANGDAGL" */ delete ZHANGDAGL from ZHANGDAGL t2, deleted t1 where t2.CAI_ZHANGDAN_NUMBER = t1.ZHANGDAN_NUMBER return /* Errors handling */ error: raiserror @errno @errmsg rollback transaction en
28、d go /* Insert trigger "ti_dingcangl" for table "DINGCANGL" */ create trigger ti_dingcangl on DINGCANGL for insert as begin declare @numrows int, @numnull int, @errno int, @errmsg varchar(255) select @numrows = @@rowcount if @numrows =
29、 0 return /* Parent "ZHANGDAGL" must exist when inserting a child in "DINGCANGL" */ if update(ZHANGDAN_NUMBER) begin if (select count(*) from ZHANGDAGL t1, inserted t2 where t1.ZHANGDAN_NUMBER = t2.ZHANGDAN_NUMBER) != @numrows
30、 begin select @errno = 30002, @errmsg = 'Parent does not exist in "ZHANGDAGL". Cannot create child in "DINGCANGL".' goto error end end return /* Errors handling */ error: raiserror @errno @errmsg rollback
31、transaction end go /* Update trigger "tu_dingcangl" for table "DINGCANGL" */ create trigger tu_dingcangl on DINGCANGL for update as begin declare @numrows int, @numnull int, @errno int, @errmsg varchar(255) select @numrows = @@rowcount
32、 if @numrows = 0 return /* Parent "ZHANGDAGL" must exist when updating a child in "DINGCANGL" */ if update(ZHANGDAN_NUMBER) begin if (select count(*) from ZHANGDAGL t1, inserted t2 where t1.ZHANGDAN_NUMBER = t2.ZHANG
33、DAN_NUMBER) != @numrows begin select @errno = 30003, @errmsg = '"ZHANGDAGL" does not exist. Cannot modify child in "DINGCANGL".' goto error end end return /* Errors handling */ error: raiserr
34、or @errno @errmsg rollback transaction end go /* Insert trigger "ti_zhangdagl" for table "ZHANGDAGL" */ create trigger ti_zhangdagl on ZHANGDAGL for insert as begin declare @numrows int, @numnull int, @errno int, @errmsg varchar(255)
35、select @numrows = @@rowcount if @numrows = 0 return /* Parent "CAIWUGL" must exist when inserting a child in "ZHANGDAGL" */ if update(CAI_ZHANGDAN_NUMBER) begin select @numnull = (select count(*) from inserted
36、 where CAI_ZHANGDAN_NUMBER is null) if @numnull != @numrows if (select count(*) from CAIWUGL t1, inserted t2 where t1.ZHANGDAN_NUMBER = t2.CAI_ZHANGDAN_NUMBER) != @numrows - @numnull begin select @errno = 3000
37、2, @errmsg = 'Parent does not exist in "CAIWUGL". Cannot create child in "ZHANGDAGL".' goto error end end return /* Errors handling */ error: raiserror @errno @errmsg rollback transaction end go /* Update trigger "tu_zh
38、angdagl" for table "ZHANGDAGL" */ create trigger tu_zhangdagl on ZHANGDAGL for update as begin declare @numrows int, @numnull int, @errno int, @errmsg varchar(255) select @numrows = @@rowcount if @numrows = 0 return
39、 /* Parent "CAIWUGL" must exist when updating a child in "ZHANGDAGL" */ if update(CAI_ZHANGDAN_NUMBER) begin select @numnull = (select count(*) from inserted where CAI_ZHANGDAN_NUMBER is null) if @numnu
40、ll != @numrows if (select count(*) from CAIWUGL t1, inserted t2 where t1.ZHANGDAN_NUMBER = t2.CAI_ZHANGDAN_NUMBER) != @numrows - @numnull begin select @errno = 30003, @errmsg = '"CAIWUGL" does not
41、exist. Cannot modify child in "ZHANGDAGL".' goto error end end /* Modify parent code of "ZHANGDAGL" for all children in "CAIWUGL" */ if update(ZHANGDAN_NUMBER) begin update CAIWUGL set ZHANGDAN_NUMBER = i1.ZHAN
42、GDAN_NUMBER from CAIWUGL t2, inserted i1, deleted d1 where t2.ZHANGDAN_NUMBER = d1.ZHANGDAN_NUMBER and (i1.ZHANGDAN_NUMBER != d1.ZHANGDAN_NUMBER) end /* Modify parent code of "ZHANGDAGL" for all children in "DINGCANGL" */ if update(ZH
43、ANGDAN_NUMBER) begin update DINGCANGL set ZHANGDAN_NUMBER = i1.ZHANGDAN_NUMBER from DINGCANGL t2, inserted i1, deleted d1 where t2.ZHANGDAN_NUMBER = d1.ZHANGDAN_NUMBER and (i1.ZHANGDAN_NUMBER != d1.ZHANGDAN_NUMBER) end
44、return /* Errors handling */ error: raiserror @errno @errmsg rollback transaction end go /* Delete trigger "td_zhangdagl" for table "ZHANGDAGL" */ create trigger td_zhangdagl on ZHANGDAGL for delete as begin declare @numrows int, @errno int,
45、 @errmsg varchar(255) select @numrows = @@rowcount if @numrows = 0 return /* Delete all children in "CAIWUGL" */ delete CAIWUGL from CAIWUGL t2, deleted t1 where t2.ZHANGDAN_NUMBER = t1.ZHANGDAN_NUMBER /* Delete all children in "DIN
46、GCANGL" */ delete DINGCANGL from DINGCANGL t2, deleted t1 where t2.ZHANGDAN_NUMBER = t1.ZHANGDAN_NUMBER return /* Errors handling */ error: raiserror @errno @errmsg rollback transaction end go 2) 數(shù)據(jù)庫前臺的設(shè)計 根據(jù)數(shù)據(jù)庫的設(shè)計,該餐飲業(yè)管理系統(tǒng)可以分成四個子模塊: § 訂餐管理 根據(jù)客戶的點(diǎn)菜單
47、,采用checkbox從已有菜品中選定菜品,并記錄。 § 菜品管理 用戶可以根據(jù)餐館現(xiàn)行情況動態(tài)管理菜品,可以對菜品進(jìn)行品種、類別的分類,并可以即時調(diào)整菜價;對菜品的調(diào)整,如添加刪除,會級聯(lián)添加和刪除訂餐管理中菜單一欄中的內(nèi)容。 § 賬單管理 用戶根據(jù)現(xiàn)餐館內(nèi)的用餐情況對各餐臺進(jìn)行管理,同時可以查詢客戶的點(diǎn)餐情況。 § 財務(wù)管理 記錄餐館的營業(yè)情況,按時間、賬單號進(jìn)行管理,同時可用于客戶結(jié)賬。 第四章 運(yùn)行結(jié)果與測試 一. 系統(tǒng)運(yùn)行 1. 系統(tǒng)登錄界面 用戶輸入已注冊過的用戶名和密碼,非法用戶不得進(jìn)入系統(tǒng)。 2. 總系統(tǒng)界面 用戶
48、根據(jù)需要對系統(tǒng)選擇相應(yīng)功能,進(jìn)行模塊化管理。 3. 賬單管理系統(tǒng)界面 一個賬單號對應(yīng)一個客戶,通過賬單號對各個客戶的消費(fèi)進(jìn)行管理,可進(jìn)行添加刪除操作,并可對各個客戶的消費(fèi)情況進(jìn)行查詢。 4. 訂餐管理系統(tǒng) 用戶依據(jù)客戶的點(diǎn)菜單,以打勾方式,從右邊的菜單框中選擇菜品輸入到左邊訂餐框中,從而對客戶的消費(fèi)進(jìn)行記錄。 5. 菜品管理管理系統(tǒng) 用戶根據(jù)需要可即時調(diào)整菜品的菜名、品種、類別、單價,同時可以進(jìn)行查詢當(dāng)前菜品情況。 6. 財務(wù)管理系統(tǒng) 記錄各個客戶的消費(fèi)時間(結(jié)賬時間)、賬單號、賬目,方便日后進(jìn)行財務(wù)統(tǒng)計,和核對;可進(jìn)行添加、刪除、查詢操作。 二. 調(diào)試中出現(xiàn)的問題說明與解決 1. 在做訂餐管理系統(tǒng)時,出現(xiàn)訂餐結(jié)果無法輸入到數(shù)據(jù)庫的現(xiàn)象。經(jīng)檢查發(fā)現(xiàn)是主鍵設(shè)置出現(xiàn)問題,修改后系統(tǒng)正常運(yùn)行。 2. 做賬目管理系統(tǒng)時,時間屬性無法輸入,經(jīng)檢查,是在概念模型設(shè)置時所選擇的格式不當(dāng)導(dǎo)致SQL語句生成出現(xiàn)問題,修改后系統(tǒng)正常運(yùn)行。 參考資料: 《數(shù)據(jù)庫原理與應(yīng)用》 作者:高榮芳 《PowerBuilder數(shù)據(jù)庫開發(fā)技術(shù)》 作者:陳佳友
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外研版(一起)英語一年級上冊Module-5課件
- 外研版(一起)五上Module-10《Unit-1-You-should-tidy-your課件
- 認(rèn)識線段課件
- 患者病情評估培訓(xùn)完整
- 早產(chǎn)兒的護(hù)理教學(xué)
- 我們吃的食物安全嗎
- 鹽酸硫酸—浙教版九級科學(xué)上冊課件1
- 人工智能遺傳算法
- 硬質(zhì)景觀的細(xì)部處理龍湖
- 人教版小學(xué)二年級上冊數(shù)學(xué)8的乘法口訣
- 郵輪旅游世界郵輪產(chǎn)業(yè)經(jīng)濟(jì)的發(fā)展
- 如何繪制出高品質(zhì)的學(xué)科思維導(dǎo)圖
- 美國癲癇學(xué)會驚厥性癲癇持續(xù)狀態(tài)治療指南解讀
- 城市公共空間設(shè)計理論及方法課件
- (課件)正弦定理公開課