數(shù)據(jù)庫(kù)課程設(shè)計(jì) 餐飲下單管理系統(tǒng)
《數(shù)據(jù)庫(kù)課程設(shè)計(jì) 餐飲下單管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫(kù)課程設(shè)計(jì) 餐飲下單管理系統(tǒng)(35頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、目 錄 1.課題名稱及目標(biāo) 1 2.需求分析 1 2.1 數(shù)據(jù)需求 1 2.2事務(wù)需求 2 2.3數(shù)據(jù)流 3 2.4數(shù)據(jù)字典 5 3.數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 8 3.1概念設(shè)計(jì) 8 3.1.1分E-R圖的建立 8 3.1.2整體E-R圖 9 3.2邏輯設(shè)計(jì) 10 3.2.1 E-R圖向關(guān)系模型的轉(zhuǎn)換 10 3.2.2優(yōu)化處理 11 3.2.3 用戶子模式建立 12 4.數(shù)據(jù)庫(kù)物理設(shè)計(jì) 12 4.1存儲(chǔ)過(guò)程 13 4.2 觸發(fā)器 13 5.數(shù)據(jù)庫(kù)的實(shí)施 13 5.1在SQL中數(shù)據(jù)庫(kù)實(shí)施 13 5.1.1數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象的建立 13 5.1.2數(shù)據(jù)
2、入庫(kù) 15 5.2 數(shù)據(jù)庫(kù)測(cè)試 15 5.2.1對(duì)建立的數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象進(jìn)行測(cè)試 15 6. 總結(jié) 29 7. 附錄 30 1 1.課題名稱及目標(biāo) 本次實(shí)訓(xùn)要設(shè)計(jì)的數(shù)據(jù)庫(kù)課題名稱是餐廳管理系統(tǒng)。 餐廳管理系統(tǒng)的功能主要包括顧客點(diǎn)菜、結(jié)賬、對(duì)員工資料進(jìn)行管理、對(duì)餐桌信息進(jìn)行統(tǒng)一設(shè)置、對(duì)消費(fèi)情況進(jìn)行查詢等功能。基本功能如下: (1)菜譜信息管理:對(duì)菜譜進(jìn)行增、查、改、刪操作。即可查詢當(dāng)前餐廳所推出的菜品,增加菜品,修改菜品的價(jià)格,刪除菜品。 (2)餐桌信息管理:能查詢當(dāng)前餐廳中所有餐桌的座位數(shù)以及使用情況,客人可以對(duì)位實(shí)現(xiàn)的餐桌進(jìn)行使用申請(qǐng)。 (3)顧客信息管理:可
3、以查詢顧客的相關(guān)信息,如性別,年齡,聯(lián)系方式等。當(dāng)有新顧客時(shí),可添加新顧客的信息。 (4)顧客下訂單功能:實(shí)現(xiàn)下訂單,具有唯一的訂單號(hào),可用于結(jié)賬。可根據(jù)顧客的人數(shù)選擇相應(yīng)的餐桌號(hào),并且能夠指定服務(wù)員。 (6)顧客點(diǎn)菜:實(shí)現(xiàn)顧客點(diǎn)菜功能。顧客可以對(duì)所下的訂單進(jìn)行修改,即可刪除所點(diǎn)的菜品或是修改數(shù)量。同時(shí)可以查詢某位顧客的訂單。 (7)顧客結(jié)賬:根據(jù)訂單號(hào)進(jìn)行結(jié)賬(防止有相同姓名的顧客,以致結(jié)錯(cuò)帳)。能夠根據(jù)消費(fèi)金額進(jìn)行對(duì)應(yīng)的折扣,并把消費(fèi)信息存檔到消費(fèi)記錄中去。 2.需求分析 通過(guò)了解餐飲行業(yè)的特點(diǎn)和實(shí)際情況,從分析飯店的基本情況入手,結(jié)合要實(shí)現(xiàn)的功能,對(duì)系統(tǒng)的可行性進(jìn)行分析,為提高
4、其可行性,故做了以下數(shù)據(jù)分析。 2.1 數(shù)據(jù)需求 餐桌數(shù)據(jù)包括餐桌號(hào)、座位數(shù)、狀態(tài)(空/有人) 餐廳存儲(chǔ)有顧客信息,員工信息。 菜品信息有菜品編號(hào)、名稱、類別、價(jià)格等 v 具體數(shù)據(jù)需求如下: 3 ◎下訂單階段需要的數(shù)據(jù) l 顧客信息:包括顧客編號(hào)。 l 訂單信息:包括訂單編號(hào)、消費(fèi)時(shí)間。 l 餐桌信息:包括編號(hào)、可容人數(shù)、使用狀態(tài)等 l 員工信息:包括員工工號(hào)。 ◎點(diǎn)菜階段需要的數(shù)據(jù) l 訂單信息:訂單編號(hào) l 菜品信息:包括菜品編號(hào)、菜品名稱、菜品數(shù)量等。 ◎結(jié)賬階段需要的數(shù)據(jù): l 訂單信息:包括訂單編號(hào)、顧客編號(hào) l 菜品信息:包括菜品編號(hào)、
5、菜品名稱、菜品數(shù)量等。 l 員工信息:包括員工工號(hào) l 折扣信息:包括消費(fèi)金額、折扣數(shù) ◎員工管理需要的數(shù)據(jù): l 員工檔案:包括工號(hào)、姓名、性別、工資 ◎顧客管理需要的數(shù)據(jù): l 顧客檔案:包括編號(hào)、姓名、性別等。 ◎消費(fèi)記錄管理需要的數(shù)據(jù)有: l 消費(fèi)信息:訂單編號(hào)、消費(fèi)金額、折扣后金額、結(jié)賬時(shí)間 2.2事務(wù)需求 v 數(shù)據(jù)錄入 l 錄入顧客信息 l 錄入餐桌信息 l 錄入員工信息 l 錄入菜品信息 v 數(shù)據(jù)更新/刪除 l 更新/刪除餐桌信息 l 更新/刪除菜譜菜品信息 l 更新/刪除員工信息 l 更新/刪除顧客信息 l 更新/刪除訂單菜品信息
6、 v 數(shù)據(jù)查詢 l 查詢可用餐桌信息 l 查詢?cè)谑鄄似沸畔? l 查詢訂單信息 l 查詢顧客點(diǎn)菜信息 l 查詢員工信息 l 查詢顧客消費(fèi)信息 2.3數(shù)據(jù)流 (1)頂層數(shù)據(jù)流 P1 訂單處理 E2 服務(wù)員 E1 顧客 負(fù)責(zé) F1 變更信息 (2) 第一層數(shù)據(jù)流 P2.2 點(diǎn)菜處理 F2.1 折扣 菜譜 P2.1 直接
7、下單 E2.1 顧客 E2.3 服務(wù)員 P2.3 結(jié)賬 E2.2 訂單 就位 生成 賬單 (3)第二層數(shù)據(jù)流 點(diǎn)菜業(yè)務(wù) 申請(qǐng)變更 P3.1.2 點(diǎn)菜處理 反饋?zhàn)兏? 查看菜譜 P3.1.5 判斷變更方式 P3.1.4 變更處理
8、 加菜、減菜 P3.1.1 直接下單 F3.1.2 存儲(chǔ)賬單 E3.1.2 訂單 E3.1.1 顧客 就位 生成 賬單 P3.1.3 后臺(tái)處理 F3.1.1 存儲(chǔ)訂單 點(diǎn)菜業(yè)務(wù) 2.4數(shù)據(jù)字典 1) 數(shù)據(jù)項(xiàng) Foodtable(餐桌)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 餐桌號(hào) Foodtableno varchar
9、 10 座位數(shù) seatingno int 使用狀態(tài) Foodtablestate varchar 10 Menus(菜譜)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 編號(hào) Dishno varchar 10 名稱 Dishname varchar 10 類別 Dishclass varchar 10 價(jià)格 Dishprice float Worker(員工)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 工號(hào) Workerno varchar 10 姓名 Workername varc
10、har 10 性別 Workersex varchar 4 年齡 Workerage int 工資 Workersalary int Customer(顧客)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 編號(hào) Customerno varchar 10 姓名 Customername varchar 10 性別 Customersex varchar 4 聯(lián)系方式 Customerphoneno varchar 20 Oder(訂單)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度
11、訂單編號(hào) Oderno varchar 10 顧客編號(hào) Customerno varchar 10 消費(fèi)時(shí)間 consumetime datetime 餐桌編號(hào) Foodtableno varchar 10 服務(wù)員編號(hào) Workerno varchar 10 Menus_Oder(點(diǎn)菜)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 訂單編號(hào) Oderno varchar 10 菜品編號(hào) Dishno varchar 10 菜品名稱 Disnname varchar 10 菜品數(shù)量 Dish_amount int
12、 Discount_rules(折扣規(guī)則)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 消費(fèi)金額 Consumption float 折扣 Discount float Sales_bill(消費(fèi)賬單)數(shù)據(jù)項(xiàng) 屬性 存儲(chǔ)代碼 類型 長(zhǎng)度 訂單編號(hào) Oderno varchar 10 消費(fèi)金額 Consumption float 折扣后金額 after_discount float 賬單時(shí)間 Billtime int 2) 數(shù)據(jù)結(jié)構(gòu) 編號(hào) 數(shù)據(jù)結(jié)
13、構(gòu)名 屬性 1 餐桌信息 餐桌號(hào)、座位數(shù)、使用狀態(tài) 2 菜譜 編號(hào)、名稱、類別、價(jià)格 3 員工信息 工號(hào)、姓名、性別、年齡、工資 4 顧客信息 編號(hào)、姓名、性別、聯(lián)系方式 5 訂單信息 訂單編號(hào)、顧客編號(hào)、消費(fèi)時(shí)間、餐桌編號(hào)、服務(wù)員編號(hào) 6 點(diǎn)菜 訂單編號(hào)、菜品編號(hào)、菜品名稱、菜品數(shù)量 7 折扣規(guī)則 消費(fèi)金額、折扣 8 消費(fèi)賬單 訂單編號(hào)、消費(fèi)金額、折扣后金額、賬單時(shí)間 3) 數(shù)據(jù)流 編號(hào) 數(shù)據(jù)流名 輸入 輸出 1 菜品信息 修改菜品 菜譜 2
14、 空閑餐桌 選擇餐桌 訂單 3 點(diǎn)菜信息 加菜退菜 點(diǎn)菜 4 記入賬單 訂單 結(jié)賬 5 結(jié)賬 折扣方式 結(jié)賬 4) 數(shù)據(jù)存儲(chǔ) 編號(hào) 數(shù)據(jù)存儲(chǔ)名 輸入 輸出 1 顧客信息更新 顧客新信息 顧客信息 2 菜譜更新 新增菜品 菜譜 3 訂單儲(chǔ)存 訂單
15、 訂單信息 4 餐桌更新 新增餐桌 餐桌 5 賬單存儲(chǔ) 消費(fèi)信息 賬單記錄 5) 處理過(guò)程 編號(hào) 處理過(guò)程名 輸入數(shù)據(jù)流 輸出數(shù)據(jù)流 1 顧客點(diǎn)菜 菜譜 訂單 2 結(jié)賬 訂單 賬單記錄 3.數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 3.1概念設(shè)計(jì) 3.1.1分E-R圖的建立 (1) 訂單形成過(guò)程1 n 1 1 1 n n n 1 n 負(fù)責(zé) 包含
16、 菜品 選擇 菜譜 顧客 查看 生成 訂單 服務(wù)員 (2)結(jié)賬形成過(guò)程 消費(fèi)金額 包含 支付 顧客 訂單 對(duì)應(yīng) 折扣規(guī)則 對(duì)應(yīng) 3.1.2整體E-R圖 1 1 1 對(duì)應(yīng) 1 1 1 1 1 1 1 對(duì)應(yīng) 1 1 1 1 1 1 1 n n n n n 工資 對(duì)應(yīng) 員工 折扣 銷售記錄 賬單 支付 保存 位置 餐桌 負(fù)責(zé) 訂單
17、下單 包含 菜品 選擇 查看 顧客 菜譜 3.2邏輯設(shè)計(jì) 3.2.1 E-R圖向關(guān)系模型的轉(zhuǎn)換 A. 轉(zhuǎn)換規(guī)則 一個(gè)實(shí)體型轉(zhuǎn)換成一個(gè)關(guān)系模型。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。 實(shí)體型間的聯(lián)系常有如下不同的情況: a. 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以任意一端對(duì)應(yīng)的關(guān)系模式合并。 b. 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 c. 一個(gè)m:n聯(lián)系轉(zhuǎn)換成一個(gè)關(guān)系模式。 d. 3或3個(gè)以上實(shí)體間的一個(gè)多聯(lián)系可以轉(zhuǎn)換成一個(gè)關(guān)系模式。 e. 具有相同碼的關(guān)系模式可合并。 B.根據(jù)以上規(guī)則得到如下關(guān)系
18、模型(下劃線的屬性為主碼) 菜譜(菜品編號(hào),菜品名稱,菜品類別,菜品價(jià)格) 顧客(顧客編號(hào),姓名,性別,年齡,聯(lián)系方式) 餐桌(餐桌號(hào),座位數(shù),使用狀態(tài)) 員工(工號(hào),姓名,性別,年齡,工資) 訂單(訂單編號(hào),顧客編號(hào),消費(fèi)時(shí)間,餐桌編號(hào),服務(wù)員編號(hào)) 菜譜_訂單(訂單編號(hào),菜品編號(hào),菜品名稱,菜品數(shù)量) 消費(fèi)記錄(訂單號(hào),消費(fèi)金額,折扣后金額,賬單時(shí)間) 折扣規(guī)則(消費(fèi)金額,折扣) 3.2.2優(yōu)化處理 1) 確定數(shù)據(jù)依賴。 2) 對(duì)各個(gè)關(guān)系模式間的數(shù)據(jù)依賴進(jìn)行極小化分析,減小冗余。 3) 按照數(shù)據(jù)依賴的理論對(duì)關(guān)系模式進(jìn)行分析,看是否存在部分函數(shù)依賴或函數(shù)傳遞或多值依賴
19、等,確保各關(guān)系模式滿足第三范式。 4) 按照需求分析階段得到的處理要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)某些模式進(jìn)行合并或分解。 5) 對(duì)關(guān)系模式進(jìn)行必要的分解,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)某些模式進(jìn)行合并或分解。 3.2.3 用戶子模式建立 名稱 描述 插入新顧客信息 若是新顧客,則插入顧客的信息,姓名,性別等 下單就位 顧客來(lái)餐,下訂單,分配餐桌 點(diǎn)菜 存儲(chǔ)顧客所點(diǎn)的菜品 刪除菜品 刪除顧客所點(diǎn)的某菜品 修改菜品數(shù)量 修改顧客所點(diǎn)的某菜品的數(shù)量 查詢顧客點(diǎn)菜信息 查詢顧客所點(diǎn)的菜品 消費(fèi)總額 計(jì)算顧客本次
20、消費(fèi)的總額。顧客支付完賬單時(shí),把消費(fèi)信息存檔到消費(fèi)記錄中 結(jié)賬后更改餐桌狀態(tài) 當(dāng)顧客結(jié)賬后,把餐桌狀態(tài)改為“空” 刪除菜譜中菜品 刪除菜譜中存在的某菜品 修改菜品價(jià)格 修改菜譜中某菜品的價(jià)格 向菜譜添加菜品 向菜譜添加新菜品 trig_discount 觸發(fā)器,顧客進(jìn)行結(jié)賬時(shí),消費(fèi)金額在不同的區(qū)間會(huì)有不同的折扣。 trig_Sales_bill 觸發(fā)器,當(dāng)消費(fèi)金額達(dá)到一定額數(shù)時(shí),會(huì)送相應(yīng)優(yōu)惠券 trig_Menus 觸發(fā)器,當(dāng)向菜譜添加新菜品,若該菜品名稱含有“紅”字,會(huì)發(fā)出“此后生意必定紅紅火火”的祝福語(yǔ)。 4.數(shù)據(jù)庫(kù)物理設(shè)計(jì) 數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)
21、構(gòu)與存取方法就是數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫(kù)管理系統(tǒng),為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最合適的應(yīng)用環(huán)境的物理結(jié)構(gòu)過(guò)程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。這一階段主要任務(wù)時(shí)確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),并不斷的進(jìn)行優(yōu)化處理,主要建立索引,觸發(fā)器,存儲(chǔ)過(guò)程。 4.1存儲(chǔ)過(guò)程 存儲(chǔ)過(guò)程可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的增刪改功能,在執(zhí)行時(shí)需要調(diào)用。御用像函數(shù)一樣,也可以有參數(shù)的參與。定義存儲(chǔ)過(guò)程提供了過(guò)程封裝的效果,執(zhí)行只需要調(diào)用,在更大程度上簡(jiǎn)化了數(shù)據(jù)處理過(guò)程。 餐飲管理具體存儲(chǔ)過(guò)程名稱和作用詳見(jiàn)3.2.3,具體代碼詳見(jiàn)第5.2.1部分 4.2 觸發(fā)器 餐飲管理具體觸發(fā)器的名稱和作用詳見(jiàn)3.2.3,具體代碼詳見(jiàn)
22、第5.2.1部分 5.數(shù)據(jù)庫(kù)的實(shí)施 5.1在SQL中數(shù)據(jù)庫(kù)實(shí)施 5.1.1數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象的建立 create database Restaurant_Management ---------建表-------------------------------------------------- create table Menus --菜譜 (Dishno varchar(10) primary key, Dishname varchar(10), Dishclass varchar(10), Dishprice float, ) create
23、table Customer --顧客 (Customerno varchar(10) primary key, Customername varchar(10) not null, Customersex varchar(4) check (Customersex=男or Customersex=女) not null, Customerphoneno varchar(20) unique not null, ) create table Foodtable --餐桌 (Foodtableno varchar(10) primary key, seatingno in
24、t not null, Foodtablestate varchar(6)check(Foodtablestate=空 or Foodtablestate=有人), ) drop table Oder create table Oder --訂單 (Oderno varchar(10) primary key, Customerno varchar(10) not null, consumetime datetime not null, Foodtableno varchar(10) not null, Workerno varchar(10) not null, for
25、eign key(Customerno) references Customer(Customerno), foreign key(Foodtableno)references Foodtable(Foodtableno), foreign key(Workerno) references Worker(Workerno), ) create table Worker --員工 (Workerno varchar(10) primary key, Workername varchar(10), Workersex varchar(4) check(Workersex=男
26、or Workersex=女), Workerage int, Workersalary int, ) drop table Menus_Oder create table Menus_Oder --點(diǎn)菜 (Oderno varchar(10), Dishno varchar(10), Disnname varchar(10), Dish_amount int not null, Primary key(Dishno,Oderno), foreign key(Dishno) references Menus(Dishno), foreign key(Oderno
27、) references Oder(Oderno), ) drop table Sales_bill create table Sales_bill --銷售賬單 ( Oderno varchar(10) primary key , Consumption float, after_discount float, Billtime datetime, foreign key(Oderno) references Oder(Oderno) ) drop table Discount_rules create table Discount_rules --折扣規(guī)
28、則 (Consumption float primary key, Discount float, ) 5.1.2數(shù)據(jù)入庫(kù) 本系統(tǒng)采用將數(shù)據(jù)逐條錄入的方法。 5.2 數(shù)據(jù)庫(kù)測(cè)試 5.2.1對(duì)建立的數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象進(jìn)行測(cè)試 (1)存儲(chǔ)過(guò)程 ------------------------插入新顧客信息--------------- drop procedure 插入新顧客信息 create procedure 插入新顧客信息 (@Customerno varchar(10), @Customername varchar(10), @Customer
29、sex varchar(4), @Customerphoneno varchar(20) ) as insert into Customer values(@Customerno,@Customername,@Customersex,@Customerphoneno) select * from Customer ----------------驗(yàn)證----------------------------------- execute 插入新顧客信息112699,李陽(yáng),男,13413843065 ----------------下單就位--------
30、--- drop procedure 下單就位 create procedure 下單就位 (@Oderno varchar(10) , @Customerno varchar(10), @consumetime datetime, @Foodtableno varchar(10), @Wokerno varchar(10) ) as begin transaction --開(kāi)始事務(wù) insert into Oder values(@Oderno,@Customerno,@consumetime,@Foodtableno,@Wokerno ) if ((
31、select Foodtablestate from Foodtable where Foodtableno=@Foodtableno)<>空) begin print 該餐桌有人,請(qǐng)重選餐桌。 Rollback tran return end else begin update Foodtable set Foodtablestate =有人 where Foodtableno=@Foodtableno print 下單成功,請(qǐng)就位開(kāi)始點(diǎn)菜 end com
32、mit tran ---------------驗(yàn)證---------------
33、- execute 下單就位O_001,112699,2013-12-26,TB_005,W_002 execute 下單就位O_002,112698,2013-12-26,TB_004,W_003 當(dāng)餐桌有人時(shí),則顯示 成功下單時(shí),則顯示 ----------查看下單情況---------- select * from Oder select * from Foodtable ---------------菜譜的查詢--------- select * from Menus ----------------------刪除菜譜中菜品--
34、--------- create procedure 刪除菜譜中菜品 @Dishno varchar(10) as delete from Menus Where Dishno=@Dishno select * from Menus ------------------驗(yàn)證---------------- execute 刪除菜譜中菜品 D_112 -------修改菜品價(jià)格---------- create procedure 修改菜品價(jià)格 ( @Dishno varchar(10), @Dishprice float ) as update
35、 Menus set Dishprice=@Dishprice Where Dishno=@Dishno select * from Menus ----------------驗(yàn)證-------------------- execute 修改菜品價(jià)格 D_113,30 ---------------向菜譜增加菜品-------------- create procedure 向菜譜增加菜品 (@Dishno varchar(10), @Dishname varchar(10), @Dishclass varchar(10), @Dishprice f
36、loat ) as insert into Menus values(@Dishno,@Dishname,@Dishclass,@Dishprice) select * from Menus -----------------驗(yàn)證-------------------- execute 向菜譜增加菜品D_112,時(shí)蔬,小炒類,20 ---------------------------------------------點(diǎn)菜的增加、查詢、刪除、修改-------------------------- ---------------點(diǎn)菜---------
37、---- create procedure 點(diǎn)菜 (@Oderno varchar(10), @Dishno varchar(10), @Disnname varchar(10), @Dish_amount int ) as insert into Menus_Oder values(@Oderno,@Dishno,@Disnname,@Dish_amount) select * from Menus_Oder where Oderno=@Oderno -------------驗(yàn)證----------- execute 點(diǎn)菜O_001,D_111,小炒河蝦,2
38、 execute 點(diǎn)菜O_001,D_114,雞蛋炒芹菜,1 execute 點(diǎn)菜O_001,D_115,三鮮湯,3 ----------------查詢客戶點(diǎn)菜信息--------------- create procedure 查詢顧客點(diǎn)菜信息 @Customerno varchar(10) as select Customerno=@Customerno,Menus.Dishno,Dishname,Dish_amount from Menus,Menus_Oder,Oder where Oder.Customerno=@Customerno and Menus.
39、Dishno=Menus_Oder.Dishno and Oder.Oderno=Menus_Oder.Oderno ---------------驗(yàn)證--------------------- execute 查詢顧客點(diǎn)菜信息 112699 --------------刪除菜品-------------------- create procedure 刪除菜品 (@Oderno varchar(10), @Dishno varchar(10) ) as delete from Menus_Oder Where Oderno=@Oderno and Dishn
40、o=@Dishno select * from Menus_Oder where Oderno=@Oderno ------------------驗(yàn)證---------------- execute 刪除菜品 O_001,D_111 ------------------修改菜品數(shù)量--------------- create procedure 修改菜品數(shù)量 (@Oderno varchar(10), @Dishno varchar(10), @Dish_amount int ) as update Menus_Oder set Dish_amount=@D
41、ish_amount Where Oderno=@Oderno and Dishno=@Dishno select * from Menus_Oder where Oderno=@Oderno ----------------驗(yàn)證-------------------- execute 修改菜品數(shù)量 O_001,D_111,3 , ---------------計(jì)算總消費(fèi)額----------- DROP procedure 消費(fèi)總額 create procedure 消費(fèi)總額 (@Oderno varchar(10), @Consumption float outp
42、ut, @discount float output ) as select @Consumption=SUM(Dishprice*Dish_amount) from Menus_Oder,Menus,Oder where Menus.Dishno=Menus_Oder.Dishno and Oder.Oderno=Menus_Oder.Oderno and Oder.Oderno=@Oderno begin tran ----啟用事務(wù) if exists (select Consumption from Discount_rules where Consumption
43、=@Consumption) --判斷Discount_rules中是否有對(duì)應(yīng)折扣 begin select @discount=Discount from Discount_rules where Consumption=@Consumption end ELSE begin INSERT into Discount_rules(Consumption) VALUES(@Consumption) --將@Consumption插入到Discount_rules select @discount=Discount fro
44、m Discount_rules where Consumption=@Consumption --獲取對(duì)應(yīng)折扣 end if exists(select Oderno from Sales_bill where Oderno=@Oderno)--判斷消費(fèi)賬單是否已有該消費(fèi)記錄 begin print 消費(fèi)記錄已插入消費(fèi)賬單,別重復(fù)插入 end else begin insert into Sales_bill(Oderno,Consumption,after_discount,Billtim
45、e) values(@Oderno,@Consumption,@Consumption*@discount,GETDATE()) print 成功將消費(fèi)記錄插入到消費(fèi)賬單 end commit tran --提交事務(wù) -------------驗(yàn)證---------------- declare @Consumption float,@discount float,@Oderno varchar(10)=O_001 execute 消費(fèi)總額 O_001,@Consumption output,@discount output select Oder
46、no,Customername,@Consumption 總消費(fèi),@discount 折扣 from Oder,Customer where Customer.Customerno=Oder.Customerno and Oderno=@Oderno 并把消費(fèi)信息插入到消費(fèi)記錄中 若已經(jīng)結(jié)賬,則提示 ----------------結(jié)賬后餐桌狀態(tài)------------ create procedure 結(jié)賬后更改信息 @Oderno varchar(10) as update Foodtable ----修改餐桌狀態(tài) set Foodtables
47、tate=空 where Foodtableno=(select Foodtableno from Oder where Oderno=@Oderno) ------------驗(yàn)證------------- execute 結(jié)賬后更改信息 O_001 -----------------------------------------對(duì)菜譜的操作------------------------ ---------------查詢菜譜--------- select * from Menus -------------刪除菜譜中菜品----------- crea
48、te procedure 刪除菜譜中菜品 @Dishno varchar(10) as delete from Menus Where Dishno=@Dishno select * from Menus ------------------驗(yàn)證---------------- execute 刪除菜譜中菜品 D_112 執(zhí)行前: 執(zhí)行后: -------修改菜品價(jià)格---------- create procedure 修改菜品價(jià)格 ( @Dishno varchar(10), @Dishprice float ) as update
49、Menus set Dishprice=@Dishprice Where Dishno=@Dishno select * from Menus ----------------驗(yàn)證-------------------- execute 修改菜品價(jià)格 D_113,40 執(zhí)行后: ---------------向菜譜增加菜品-------------- create procedure 向菜譜增加菜品 (@Dishno varchar(10), @Dishname varchar(10), @Dishclass varchar(10), @Dishpric
50、e float ) as insert into Menus values(@Dishno,@Dishname,@Dishclass,@Dishprice) select * from Menus -----------------驗(yàn)證-------------------- execute 向菜譜增加菜品D_112,時(shí)蔬,小炒類,20 執(zhí)行后: (2)觸發(fā)器 -----------------------折扣----------------------- DROP trigger trig_discount create trigger trig_dis
51、count on Discount_rules for insert as begin declare @expand float select @expand=Consumption From inserted if(@expand<50) begin update Discount_rules set Discount=1 where Consumption=@expand end else if(@expand>=50and @expand<100) begin update Discount_rules
52、 set discount=0.95 where Consumption=@expand end else if(@expand>=100and @expand<150) begin update Discount_rules set discount=0.90 where Consumption=@expand end else if(@expand>=150and @expand<200) begin update Discount_rules set discount=0.85 where Cons
53、umption=@expand end else begin update Discount_rules set discount=0.80 where Consumption=@expand end end ---驗(yàn)證----- insert into Discount_rules(Consumption) values(250) select Discount from Discount_rules WHERE Consumption=250 -----------送優(yōu)惠券-------- drop trigger t
54、rig_Sales_bill create trigger trig_Sales_bill on Sales_bill for insert as begin declare @expand float select @expand=Consumption From inserted if(@expand>=150and @expand<200) begin print 送您5元優(yōu)惠券 end else if(@expand>=200) begin print 送您10元優(yōu)惠券 end end ---------
55、--祝福語(yǔ)-------------------- drop trigger trig_Menus create trigger trig_Menus on Menus for insert as begin declare @dishname varchar(10) select @dishname=dishname From inserted if (@dishname like %紅%) begin print 此后生意必定紅紅火火 end end 6. 總結(jié) 這次課程設(shè)計(jì)中遇到一個(gè)最嚴(yán)重的問(wèn)題就是時(shí)間太短,太少了。本
56、來(lái)是有一個(gè)星期的,但除去考試、上課的時(shí)間,以及構(gòu)思、整理思路,畫E-R圖的時(shí)間,真正動(dòng)手開(kāi)始做課程設(shè)計(jì)的時(shí)間就所剩不多了。不過(guò)經(jīng)過(guò)幾個(gè)晚上的熬夜、拼命,最后還是完成了。不過(guò)有點(diǎn)遺憾的是,在構(gòu)思時(shí),我本想使這個(gè)系統(tǒng)更完善,具備更多的功能,但卻由于時(shí)間問(wèn)題,最終只能放棄了,甚至我自己本身很清楚,現(xiàn)在完成的這個(gè)系統(tǒng)還是存有缺陷的,無(wú)法完全滿足實(shí)際生活所需。在這次實(shí)訓(xùn)中,遇到的問(wèn)題也有關(guān)于知識(shí)方面的,不過(guò)在老師的悉心指導(dǎo)以及同學(xué)們的幫助下,最終都一一解決了。 在這個(gè)課程設(shè)計(jì)中,我學(xué)到的東西還是很多的,感受頗多。第一,這次課程設(shè)計(jì)鞏固了之前學(xué)習(xí)到的知識(shí),并將學(xué)到的知識(shí)進(jìn)行了串聯(lián)。第二,我初略學(xué)到了設(shè)計(jì)
57、一個(gè)數(shù)據(jù)庫(kù)的幾個(gè)步驟:需求分析,概念結(jié)構(gòu)設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì),物理結(jié)構(gòu)設(shè)計(jì),運(yùn)行,實(shí)現(xiàn),運(yùn)行和維護(hù)。第三,學(xué)會(huì)熟練使用存儲(chǔ)過(guò)程以及觸發(fā)器。之前并沒(méi)有做過(guò)有關(guān)存儲(chǔ)過(guò)程的實(shí)驗(yàn),觸發(fā)器方面的實(shí)驗(yàn)也很少。不過(guò)借此機(jī)會(huì),我已把它們掌握了。 這一學(xué)期的數(shù)據(jù)庫(kù)就以這次實(shí)訓(xùn)落幕了。感覺(jué)挺不舍的。雖然之后也沒(méi)有相關(guān)的課程了,但我覺(jué)得我對(duì)數(shù)據(jù)庫(kù)的學(xué)習(xí)并不會(huì)就此止步。接下來(lái)的想法就是把所學(xué)到的知識(shí)強(qiáng)化,達(dá)到能運(yùn)用自如,并且想要學(xué)會(huì)C++或是JAVA跟數(shù)據(jù)庫(kù)的連接。 7. 附錄 附錄1 數(shù)據(jù)庫(kù)各表截圖 (1)Customer表 (2)Discount_rules表 (3)Foodtable表 (4)Menus表 (5)Menus_Oder表 (6)Oder表 (7)Sales_bill表 (8)Worker表 附錄2 視圖截圖 (1)點(diǎn)菜視圖 (2) 結(jié)賬視圖 (3)整體視圖 附錄3 存儲(chǔ)過(guò)程 35
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版