小型餐飲管理系統(tǒng) 數據庫設計報告
《小型餐飲管理系統(tǒng) 數據庫設計報告》由會員分享,可在線閱讀,更多相關《小型餐飲管理系統(tǒng) 數據庫設計報告(17頁珍藏版)》請在裝配圖網上搜索。
1、2022年-2023年建筑工程管理行業(yè)文檔 齊魯斌創(chuàng)作 第一章 設計任務與要求 目的及意義: 此小型餐飲業(yè)管理系統(tǒng)的設計主要是為了方便管理,對于各個進出賬目,支出和收入的管理便于系統(tǒng)化,在每月匯總計算中分析運營趨勢和餐館的發(fā)展方向進行一定的規(guī)劃。通過各個月的盈利進行對比,分析那種方式更適合餐館的有利運營和更好地服務顧客。實現(xiàn)對餐館內部各種管理的電子化、自動化,提高各個模塊之間的辦公效率,為高質量餐館服務提供保證。 任務: 1.能夠實現(xiàn)對該系統(tǒng)進行管理的人員的權限限制; 2.使餐館能夠及時并靈活的對菜品品種其價位等進行管理; 3.為餐館提供從客戶點餐到
2、結算等一系列操作的服務,使之能簡單易行、方便、 清楚地進行管理 第二章 系統(tǒng)功能分析 一.功能需求:餐飲管理系統(tǒng)中主要包括對以下幾種管理:賬單管理,財務管理,訂餐管理,菜品管理,系統(tǒng)管理。 (1)系統(tǒng)管理:系統(tǒng)管理包括用戶名和密碼,主要用于用戶登陸界面登陸和查詢。 (2)賬單管理:賬單管理包括賬單號和餐臺,每一個餐臺對應一個一個賬單號,通過餐臺號的記錄來對對應的餐臺進行記賬管理,即就是記錄每一個餐臺的消費金額。賬單管理是財務管理的一個小分支,是服務于財務管理的。 (3)財務管理:包括賬單號,時間和賬目。賬目用于記錄賬
3、單號的消費金額及時間,以便用于結算和匯總。每日的結算要通過對每個餐臺號的消費金額匯總來記錄,然后由每日的結算匯總得出每月的結算。帳務系統(tǒng)功能的完整性。一旦該系統(tǒng)正式運行,餐廳每日營業(yè)帳和全部往來客戶帳務的操作結算都將依靠計算機,該系統(tǒng)面對當前餐飲業(yè)各種復雜的結算要求應具有很強的應變能力。 (4)訂餐管理:訂餐管理僅包括單價。訂餐管理是便于顧客訂餐和賬單管理時對各個菜品消費金額的記錄,這樣便于賬單管理和財務匯總。
4、
5、 (5)菜品管理:菜品管理包括菜名,菜品類別和菜品品種。菜品管理便于顧客點菜和記錄各個餐臺的消費記賬,菜品品種也便于餐館的食材采購。 二. 數據需求:賬單管理中賬單號是主鍵,每一個餐臺對應一個賬單號。財務管理中賬單號是主鍵,每一個賬單
6、號都有對應的時間和賬目記錄。訂餐管理中單價就是主鍵。菜品管理中菜名是主鍵。系統(tǒng)管理中用戶名是主鍵。 三. 性能需求:該餐飲系統(tǒng)操作簡單方便可適應各類中小型餐館。 第三章 系統(tǒng)功能模塊設計 一. 在該系統(tǒng)功能分析的基礎上,考慮PowerBuilder程序編制的特點,得到如下功能模塊圖。 小型餐飲業(yè)管理系統(tǒng) 系統(tǒng)管理 賬單管理 訂餐管理 財務管理 菜品管理 用戶管理 密碼管理 賬單號管理 餐臺管理 訂單查詢 餐臺點餐管理 每日賬目管理 賬目時間管理 菜名管理 菜品管理 菜價管理 類別管理 圖1 系統(tǒng)功能模塊圖
7、二. 數據庫設計 1. 概念結構設計 2. 邏輯結構設計 3. 數據庫實施 1) 數據庫及表結構的創(chuàng)建 設本系統(tǒng)使用的數據庫名為小型餐飲業(yè)管理系統(tǒng),根據已設計的關系模式及各模式的完整性要求,現(xiàn)在就可以在SQL Server 6.x數據庫系統(tǒng)中實現(xiàn)這些邏輯結構。 下面是創(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 建立相關觸發(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) 數據庫前臺的設計 根據數據庫的設計,該餐飲業(yè)管理系統(tǒng)可以分成四個子模塊: § 訂餐管理 根據客戶的點菜單
47、,采用checkbox從已有菜品中選定菜品,并記錄。 § 菜品管理 用戶可以根據餐館現(xiàn)行情況動態(tài)管理菜品,可以對菜品進行品種、類別的分類,并可以即時調整菜價;對菜品的調整,如添加刪除,會級聯(lián)添加和刪除訂餐管理中菜單一欄中的內容。 § 賬單管理 用戶根據現(xiàn)餐館內的用餐情況對各餐臺進行管理,同時可以查詢客戶的點餐情況。 § 財務管理 記錄餐館的營業(yè)情況,按時間、賬單號進行管理,同時可用于客戶結賬。 第四章 運行結果與測試 一. 系統(tǒng)運行 1. 系統(tǒng)登錄界面 用戶輸入已注冊過的用戶名和密碼,非法用戶不得進入系統(tǒng)。 2. 總系統(tǒng)界面 用戶
48、根據需要對系統(tǒng)選擇相應功能,進行模塊化管理。 3. 賬單管理系統(tǒng)界面 一個賬單號對應一個客戶,通過賬單號對各個客戶的消費進行管理,可進行添加刪除操作,并可對各個客戶的消費情況進行查詢。 4. 訂餐管理系統(tǒng) 用戶依據客戶的點菜單,以打勾方式,從右邊的菜單框中選擇菜品輸入到左邊訂餐框中,從而對客戶的消費進行記錄。 5. 菜品管理管理系統(tǒng) 用戶根據需要可即時調整菜品的菜名、品種、類別、單價,同時可以進行查詢當前菜品情況。 6. 財務管理系統(tǒng) 記錄各個客戶的消費時間(結賬時間)、賬單號、賬目,方便日后進行財務統(tǒng)計,和核對;可進行添加、刪除、查詢操作。 二. 調試中出現(xiàn)的問題說明與解決 1. 在做訂餐管理系統(tǒng)時,出現(xiàn)訂餐結果無法輸入到數據庫的現(xiàn)象。經檢查發(fā)現(xiàn)是主鍵設置出現(xiàn)問題,修改后系統(tǒng)正常運行。 2. 做賬目管理系統(tǒng)時,時間屬性無法輸入,經檢查,是在概念模型設置時所選擇的格式不當導致SQL語句生成出現(xiàn)問題,修改后系統(tǒng)正常運行。 參考資料: 《數據庫原理與應用》 作者:高榮芳 《PowerBuilder數據庫開發(fā)技術》 作者:陳佳友
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。