《MySQL數據庫應用實戰教程(微課版)》第05章-數據庫建模體驗_第1頁
《MySQL數據庫應用實戰教程(微課版)》第05章-數據庫建模體驗_第2頁
《MySQL數據庫應用實戰教程(微課版)》第05章-數據庫建模體驗_第3頁
《MySQL數據庫應用實戰教程(微課版)》第05章-數據庫建模體驗_第4頁
《MySQL數據庫應用實戰教程(微課版)》第05章-數據庫建模體驗_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

項目5“在線商店”項目

的數據建模體驗任務1需求分析任務1需求分析5.1.1需求描述5.1.2信息收集5.1.3系統功能設計5.1.4業務流程處理任務2數據結構設計任務3數據結構的實施和數據的初始化5.1.1需求描述1.項目概況項目名稱:在線商店數據庫名:eshop2.需求概述項目的用戶分為兩大類:購物的客戶和內部員工。項目的功能也分為兩大類:一類是面向客戶的前臺功能,另一類是面向員工的后臺功能。購物的客戶:客戶可以在線注冊、瀏覽商品、將商品加入購物車,最后簽收商品并進行評價內部員工:員工可以在后臺對客戶、員工、商品、訂單進行管理,并實現發貨流程,提供統計功能。微課:5-1在線商店項目建模體驗5.1.2信息收集1.銷售單據組成:由訂單頭和訂單行組成,稱為訂單頭表、訂單行表訂單頭:在一份單據中只出現一次的數據訂單行:在一份單據中會重復出現的數據,可能是一次,也可能數次或數十次聯系:一個訂單有多行,因此是一對多聯系}訂單行訂單頭{訂單頭{5.1.2信息收集(續一)2.銷售單據的狀態購物車(狀態0):當客戶購物時,創建一個新的訂單,作為購物車使用訂單(狀態1):當客戶對購物車的商品確認下單后,該單據成為正式的訂單發貨單(狀態2):訂單經審核后(審核人簽字),這個單據成為發貨的依據出庫單(狀態3):訂單出貨以后(發貨人簽字),成為出庫單銷售單(狀態4):客戶簽收后,可以添加評價,這時這個單據成為銷售單,長期保存5.1.2信息收集(續二)3.客戶信息從圖5.1所示的銷售單據中可以追蹤到客戶的有關信息,客戶不僅有名稱、電話、郵件、收貨地址等信息,還有賬號、密碼等用戶注冊和登錄用的信息}訂單行訂單頭{訂單頭{5.1.2信息收集(續二)4.員工信息從圖5.1所示的銷售單據中可以追蹤到員工的有關信息,員工不僅有姓名、性別、電話、職務等信息,還有賬號、密碼以及員工類型等信息。員工類型用于標識員工的權限,這些權限可以體現在審核權限、發貨權限等}訂單行訂單頭{訂單頭{5.1.2信息收集(續二)5.商品信息商品有名稱、品牌、單位、單價等信息,從委托方可以獲悉商品的商品類別屬性,這個屬性可以獨立出來,它只有類別名稱一個屬性}訂單行訂單頭{訂單頭{5.1.3系統功能設計前臺功能客戶使用,可以注冊、購物、收貨等后臺功能員工使用,可以管理商品、客戶、訂單等5.1.4業務流程處理選購商品客戶將選中的商品加入購物車,加入購物車的同時可以指定購買的件數;在加入購物車時,如果該客戶沒有可用的購物車(狀態為0的銷售單據),則新創建一個購物車確認下單客戶在結束選購時,單擊“我的購物車”,這時顯示購物車內的商品和數量,以及總金額;用戶單擊“確認下單”,將銷售單據的狀態從0改為1公司審核發貨公司審核發貨分為兩道手續,一是審核人員審核,二是發貨人員發出商品;前者是將銷售單據的狀態從1改為2,后者是將銷售單據的狀態從2改為3??蛻艉炇湛蛻羰盏缴唐泛螅炇沼唵危瑢N售單據的狀態從3改為4,同時也可以添加評價信息01234訂單狀態選擇商品確認下單公司審核公司發貨客戶簽收5.1.4業務流程處理為簡化項目開發本項目不考慮貨款的處理,沒有在線支付功能,而是通過審核人員的審核來決定是否可以發貨從購物流程來看,選購商品、確認下單和客戶簽收是前臺的功能,公司對訂單的審核和發貨是后臺的功能項目實施僅實現前臺功能后臺功能留待讀者挑戰一下任務2數據結構設計任務1需求分析任務2數據結構設計5.2.1規范化設計5.2.2數據結構設計任務3數據結構的實施和數據的初始化5.2.1規范化設計(步驟1)1.列出所有二維表(實體)將銷售單據拆分為以下5個實體,盡可能列出全部屬性客戶(customer):客戶有姓名、電話、郵件、收貨地址等屬性。訂單頭(orderhead):訂單頭包括訂單編號、客戶信息、訂單日期、備注、審核日期和發貨日期等屬性。訂單行(orderline):訂單行是同一個訂單內的每一種商品,有商品ID和數量等屬性。商品(goods):商品有名稱、品牌、單位、單價等屬性。員工(staff):員工有姓名、性別、電話、職務(即角色)等屬性。一定要把銷售單據的訂單頭和訂單行拆分出來。根據系統功能設計中的商品類別管理功能,還需要添加一個商品類別表。商品類別(category):商品類別只有一個名稱屬性。5.2.1規范化設計(步驟2)2.設置主鍵和外鍵為每個實體(表)設置主鍵在有聯系的表之間建立外鍵和主鍵的參照在拆分過程中為從表設置外鍵在后續步驟中,也要保證主鍵和外鍵的設置5.2.1規范化設計(步驟3)3.檢查屬性值的原子性檢查所有表的每一列,發現客戶的收貨地址不是原子性的例如可以將“福建省廈門市思明路16號”拆分為“福建省”“廈門市”“思明路16號”經與委托方討論,將收貨地址拆分為3列省市區:全國34個省市區地級市:全國4000多個地級市街區地址:具體的街區地址優點如下方便管理、方便統計可以規范用戶的輸入5.2.1規范化設計(步驟4)4.檢查屬性值是否重復檢查所有表的每一列,發現前一步拆分出來的省市區和地級市列有屬性值重復的情況,這時可以將客戶表直接拆分為3張表。省市區(province):客戶所屬的省份、直轄市、自治區,簡稱省級市。地級市(area):客戶所在的地區(地級市、區、自治州、盟等,簡稱地級市)??蛻簦╟ustomer):客戶有姓名、電話、郵件、地級市ID、街區地址等屬性??蛻舯韰⒄盏丶壥斜?,地級市表參照省市區表,因此客戶表的收貨地址改為兩列:地級市ID和街區地址其他有重復值的列采用“內部編碼”方式加以處理5.2.1規范化設計(步驟5和步驟6)5.檢查表是否包含多個實體檢查所有表,沒有發現包含多個實體的表。6.合并相同的實體檢查所有表,沒有發現相同的實體。5.2.2數據結構設計表1省市區表(shop_province)表2地級市表(shop_area)表3客戶表(shop_customer)表4商品類別表(shop_category)表5商品表(shop_goods)表6員工表(shop_staff)表7訂單頭表(shop_order_head)表8訂單行表(shop_order_line)在線商店的擴展ER圖這是擴展ER圖“在線商店”項目數據結構(一)完整的“在線商店”項目數據結構見教材的附錄C省市區表和地級市表用于客戶地址,客戶輸入時可以從中選擇地級市表參照省市區表,而地級市表又被客戶表參照“在線商店”項目數據結構(二)客戶表保存客戶的信息,客戶注冊時生成客戶的地址分為兩個部分:街區地址、地級市id(參照地級市表),后者參照省市區表其中用戶等級和狀態采用“內部編碼”的方式來處理重復值“在線商店”項目數據結構(三)商品表和商品類別表商品表參照商品類別表“在線商店”項目數據結構(四)員工表,其中的角色和狀態采用“內部編碼”的方式來處理重復值“在線商店”項目數據結構(五)訂單頭表參照下述表客戶表——誰是購物人員工表——誰審核的員工表——誰發貨的訂單頭表的狀態特別重要0=購物車1=下單2=審核(已收到貨款)3=發貨4=已簽收設計完成后,如果需要修改,將導致項目部分重做“在線商店”項目數據結構(六)訂單行表參照下述表訂單頭表——是哪一張訂單的,也就知道了誰是購物人,以及發貨地址商品表——是什么商品,也就知道了價格任務3數據結構的實施和數據的初始化任務1需求分析任務2數據結構設計任務3數據結構的實施和數據的初始化5.3.1【實訓5-1】數據結構的實施5.3.2【實訓5-2】數據的初始化5.3.1【實訓5-1】數據結構的實施根據Jitor校驗器的要求,在dbForge上完成“【實訓5-1】數據結構的實施”本實例代碼見【實訓5-1】的指導材料,無需手工打字1.創建數據庫見教材第123頁2.創建數據表見教材第123~124頁3.建立聯系見教材第125頁【實訓5-1】5.3.2【實訓5-2】數據的初始化根據Jitor校驗器的要求,在dbForge上完成“【實訓5-2】數據的初始化”本實例代碼見【實訓5-2】的指導材料,無需手工打字通過數據,熟悉數據結構員工數據員工表(shop_staff)【實訓5-2】5.3.2【實訓5-2】數據的初始化(續一)通過數據,熟悉數據結構客戶數據省市區表(shop_province)地級市表(shop_area)客戶表(shop_customer)5.3.2【實訓5-2】數據的初始化(續二)通過數據,熟悉數據結構商品數據商品類別表(shop_category)商品表(shop_goods)5.3.2【實訓5-2】數據的初始化(續三)通過數據,熟悉數據結構銷售單據訂單頭表(shop_order_head)訂單行表(shop_order_line)5.3.2【實訓5-2】數據的初始化(續四)輸入完成后,查詢輸入的數據,驗證數據的正確性,特別是外鍵參照主鍵的聯系查詢訂單頭信息(id=2)下述代碼可以查詢id為2的訂單頭的信息。Selectshop_customer.col_name收件人姓名,shop_order_head.id_shop_order_head訂單編號,shop_customer.col_mobile收件人電話,shop_customer.col_email電子郵件,shop_order_head.col_order_date訂貨日期,concat(shop_province.col_name,shop_area.col_name,shop_customer.col_address)收貨地址,shop_order_head.col_ammount金額,shop_order_head.col_remark備注,shop_staff.col_name審核人,shop_order_head.col_audit_date審核日期,shipping.col_name發貨人,shop_order_head.col_shipping_date發貨日期fromshop_order_headinnerjoinshop_customeronshop_order_head.id_shop_customer=shop_customer.id_shop_customerinnerjoinshop_areaonshop_customer.id_shop_area=shop_area.id_shop_areainnerjoinshop_provinceonshop_area.id_shop_province=shop_province.id_shop_provinceinnerjoinshop_staffonshop_order_head.id_shop_staff1audit=shop_staff.id_shop_staffinnerjoinshop_staffshippingonshop_order_head.id_shop_staff2shipping=shipping.id_shop_staffwhereid_shop_order_head=2;5.3.2【實訓5-2】數據的初始化(續五)查詢訂單行信息(id=2)查詢結果如圖5.9所示比較查詢結果與原始數據,它們是一致的Sel

溫馨提示

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

評論

0/150

提交評論