濟南大學2012數據庫課程設計快餐訂餐系統數據庫設計.doc_第1頁
濟南大學2012數據庫課程設計快餐訂餐系統數據庫設計.doc_第2頁
濟南大學2012數據庫課程設計快餐訂餐系統數據庫設計.doc_第3頁
濟南大學2012數據庫課程設計快餐訂餐系統數據庫設計.doc_第4頁
濟南大學2012數據庫課程設計快餐訂餐系統數據庫設計.doc_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

設計題目:快餐訂購系統數據庫設計班 級:計算機小組其他成員: 張傳敬 康亞茹 林影指導老師:蔡衛東 2013年9月6日目錄目錄11需求分析21.1 概述及課程設計題目要求21.2 系統分析21.2.1 系統開發目的21.2.2 系統分角色功能分析22概念結構設計32.1 數據流設計32.1.1 數據流頂層圖32.1.2 數據流一層圖42.2 E-R圖設計42.2.1 實體間總E-R圖42.2.2 實體分E-R圖53. 邏輯結構設計83.1 關系結構設計83.1.1 客戶表client83.1.2 職員表staff93.1.3 分店表store103.1.4 食品表food103.1.5 配料表flavor113.1.7 套餐表meal123.1.8 訂單表order124. 物理設計144.1 索引存取144.1.1索引定義144.1.2 建立索引145. 數據庫設計總結155.1 理解三個范式,正確認識數據冗余155.2 正確處理實體間多對多的關系151需求分析1.1 概述及課程設計題目要求我負責邏輯結構設計,通過選用E-R圖將實體-關系圖轉換為關系模型并進行必要的優化。客戶需要在快餐訂購系統先注冊,進行客戶的信息錄入。注冊完成之后,客戶需要輸入密碼正確之后方可登陸系統,然后后才可以瀏覽、訂購及取消業務。客戶當拿到食物之后才付款。客戶可以選擇哪一個分店來為他送訂的東西。快餐店出售套餐(兩種食品組合或三種食品組合),套餐包括兩菜(或三菜)另外加米飯和當天供應的湯。用戶可以自行選擇由哪幾樣菜組成套餐。一樣菜可以另附一種或多種調料。一個訂單可以包括任意的菜,附加飲料。經經理同意,某些食品可以打折。1.2 系統分析1.2.1 系統開發目的快餐訂餐系統是為了方便快餐公司更有利把握快餐市場,并且為消費者提供更便利的服務而設計開發的。快餐訂餐系統可為快餐公司向餐飲消費者提供更加便利的餐飲服務,也可為消費者提供更加明細的消費服務。1.2.2 系統分角色功能分析快餐訂購系統使用用戶分為:客戶,送貨員(職員),餐飲經理(職員)。1. 客戶功能1) 注冊訂餐客戶賬號。注冊賬號并完善個人信息。2) 訂制套餐訂單。套餐可選擇分店設置套餐優惠,也可根據個人喜好選擇喜愛食物構成套餐。客戶可以選擇同種食物的不同口味。3) 客戶在訂單中須寫清送餐地址、個人有效聯系方式,以便快餐及時送達。4) 客戶收到訂餐后再付費。5) 客戶可對送餐服務進行滿意度評價。6) 客戶可取消個人快餐訂單。2. 餐飲經理功能1) 經理可瀏覽客戶及所屬分店職員信息。2) 經理可取消過期的訂單信息。3) 經理可設定所屬分店優惠套餐信息。4) 經理可對部分設置食物價格折扣。3. 送餐員功能1) 送餐員可瀏覽所屬分店訂單信息。2概念結構設計2.1 數據流設計2.1.1 數據流頂層圖2.1.2 數據流一層圖2.2 E-R圖設計2.2.1 實體間總E-R圖2.2.2 實體分E-R圖職員Staff-iddStaff-nickStaff-nameeStaff-telStaff-fendianaddStaff-zhiwuStaff-pwd圖2.2.2-2職員E-R圖3. 邏輯結構設計3.1 關系結構設計3.1.1 客戶表client1) 創建數據表CREATE TABLE client(client_id INT PRIMARY KEY ,client_nick VARCHAR( 20 ) NOT NULL ,client_pwd VARCHAR( 20 ) NOT NULL ,client_name VARCHAR( 20 ) NOT NULL ,client_tel VARCHAR( 20 ) NOT NULL ,client_add VARCHAR( 1000 ) NOT NULL ,client_time TIME NOT NULL); 2) 關系數據表字段client_idclient_nickclient_pwdclient_nameclient_telclient_addclient_time類型INTVARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 1000 )TIME備注主碼客戶登陸名客戶登錄密碼客戶姓名客戶聯系電話客戶聯系地址客戶注冊時間3.1.2 職員表staff 1) 創建數據表CREATE TABLE staff (staff_id INT PRIMARY KEY ,staff_nick VARCHAR( 20 ) NOT NULL ,staff_pwd VARCHAR( 20 ) NOT NULL ,staff_name VARCHAR( 20 ) NOT NULL ,staff_tel VARCHAR( 20 ) NOT NULL ,staff_fendianadd VARCHAR( 1000 ) NOT NULL ,staff_ zhiwu VARCHAR( 20 ) NOT NULL);2) 關系數據表字段staff_idstaff_nickstaff _pwdstaff_namestaff _telstaff _fendianaddstaff_zhiwu類型INTVARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 1000 )VARCHAR( 20 )備注主碼職員登陸名職員登錄密碼職員姓名職員聯系電話職員所屬分店地址職員職務3.1.3 分店表store 1) 創建數據表CREATE TABLE store (store_id INT PRIMARY KEY ,store_name VARCHAR( 1000 ) NOT NULL ,store_add VARCHAR( 1000 ) NOT NULL ,store_tel VARCHAR( 20 ) NOT NULL) ;2) 關系數據表字段store_idstore_namestore_addstore_tel類型INTVARCHAR( 1000 )VARCHAR( 1000 )VARCHAR( 20 )備注主碼分店名稱分店地址分店電話3.1.4 食品表food 1) 創建數據表CREATE TABLE food (food_id INT PRIMARY KEY ,food_name VARCHAR( 20 ) NOT NULL ,food_info VARCHAR( 1000 ) NOT NULL ,food_price FLOAT NOT NULL ,food_type VARCHAR( 20 ) NOT NULL ,food_discount FLOAT NOT NULL) 2) 關系數據表字段food_idfood_namefood_infofood_pricefood_typefood_discount類型INTVARCHAR( 20 )VARCHAR( 1000 )FLOATVARCHAR( 20 )FLOAT備注主碼食物名稱食物信息食物價格食物類型食物折扣3.1.5 配料表flavor 1) 創建數據表CREATE TABLE flavor (flavor_id INT PRIMARY KEY ,flavor_name VARCHAR( 20 ) NOT NULL)2) 關系數據表字段flavor_idflavor_name類型INTVARCHAR( 20 )備注主碼配料名3.1.6 套餐表meal 1) 創建數據表CREATE TABLE meal (meal_id INT PRIMARY KEY ,meal_name VARCHAR( 20 ) NOT NULL ,food_id INT NOT NULL,foreign key(food_id) references food(food_id);2) 關系數據表字段meal_idmeal_namefood_id類型INTVARCHAR( 20 )INT備注主碼套餐名稱套餐中食物id3.1.7 訂單表order 1) 創建數據表CREATE TABLE order (order_id INT PRIMARY KEY ,client_id INT NOT NULL ,store_id INT NOT NULL ,staff_id INT NOT NULL ,order_stime TIME NOT NULL ,order_evaluate VARCHAR( 100 ) NOT NULL ,order_tprice FLOAT NOT NULL ,order_state VARCHAR( 100 ) NOT NULL ,meal_id INT NOT NULL,foreign key(client_id) references client (client_id),foreign key(store_id) references store (store_id),foreign key(staff_id) references staff (staff_id), foreign key(meal_id) references meal (meal_id) 2) 關系數據表字段order_idclient_idstore_idstaff_idorder_stimeorder_evaluateorder_tpriceorder_statemeal_id類型INTINTINTINTTIMEVARCHAR( 100 )FLOATVARCHAR( 100 )INT備注訂單號主碼客戶id分店id送餐員id快餐到達時間服務評價訂單支付金額訂單狀態套餐id字段sell_idclient_idorder_idfood_idprice類型INTINTINTINTFLOAT備注PRIMARY KEY訂餐人id訂單id食物id食物單價4. 物理設計4.1 索引存取4.1.1索引定義索引是對數據庫表中一列或多列的值進行排序的一種結構,例如 staff 表的姓(name)列。如果要按姓查找特定職員,與必須搜索表中的所有行相比,索引會幫助您更快地獲得該信息。在數據庫關系圖中,可以在選定表的“索引/鍵”屬性頁中創建、編輯或刪除每個索引類型。當保存索引所附加到的表,或保存該表所在的關系圖時,索引將保存在數據庫中。4.1.2 建立索引在快餐店經理和送餐員查詢訂單表時,經理和送餐員只須查詢自己所在分店的訂單。故可在order表(store表)的store_id(分店id)屬性上建立索引。方法:create index store_id on order(store_id)5. 數據庫設計總結5.1 理解三個范式,正確認識數據冗余在本次數據庫設計過程中,我深刻體會到范式化對數據庫設計的重要性。例如,在第一次的數據庫設計中有很多字段會造成數據冗余,會造成系統性能下降。因而就必須理解三個范式的根本意義。通俗地理解三個范式,對于數據庫設計大有好處。在數據庫設計中,為了更好地應用三個范式,就必須通俗地理解三個范式第一范式:每一個分量必須是不可分割的數據項;第二范式:2NF是消除部分依賴;第三范式:3NF是消除傳遞依賴主鍵與外鍵在多表中的重復出現,不屬于數據冗余,這個概念必須清楚。非鍵字段的重復出現,才是數據冗余!而且是一種低級冗余,即重

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論