11-2 範例研討 – 客戶管理系統
11-2-1 需求規格與資料收集 (A) 規格需求 『真善美健身工廠』需要一套客戶管理系統,將發放每位客戶一只會員卡(VIP 條碼卡),可利用讀卡機讀入客戶 VIP 卡儲存的會員逼號,做查詢或繳費的運作,系統希望有下列功能:
(B) 收集資料 系統分析師到該公司收集到客戶資料如下:
11-2-2 資料庫邏輯設計 (A) 系統概況 我們將此資料庫定名為:sport_house,此系統僅登錄客戶資料,概況如圖 10-3 所示。由此可見只要一個關聯(資料表),即可達成所需。
圖 10-3 Sport_house 資料庫概況 (B) 系統 E-R 實體關聯圖 此系統僅有一個關聯並命名為『客戶』,依照系統需求將其設計如下:
圖 10-4 Sport_house 資料庫 E-R 關聯圖 我們依照系統需求,給予客戶關聯有七個屬性,並選擇『會員編號』為主鍵。 11-2-3 轉換資料表與正規化 (A) 客戶實體轉換資料表 我們將書籍的資料表取名為 Customers,個欄位(屬性)規劃如下:
其中,書籍編號(NO)是書籍之間的唯一識別值,吾人將它設定為主鍵(primary key),並由系統自動產生。 (B) 正規化分析 正規化分析:
(備註:表示本範例僅一個表格無法滿足 3NF 條件,當變更『會費』時,可能產生資料不一致問題) 11-2-4 實體建置 (A) 建立資料庫 吾人將此資料庫定名為:sport_house,利用 SQL 命令產生(亦可利用視窗選單產生),如下:
(B) 建立資料表 吾人將客戶資料表定名為 Customers,同樣也有兩種方法產生,利用 SQL 命令產生,如下(選擇 sport_house 資料庫)
如果設定完成之後,由 Mysql 介面可以觀察到 sport_house 資料庫內 Customers 資料表的結構,如下:
其中,NO 欄位為主建。 11-2-5 匯入測試資料 (A) 利用Excel 建立資料並匯出 CSV 檔
將此檔案另存新檔成為『csv(逗點分隔)』格式(成為 Customers.csu),再利用『記事本』將其編碼改成『UFT 8』編碼,如下結果:(如同 10-1-4 節操作)
11-2-6 測試資料庫功能 資料庫建構完成後,我們依照幾個系統需求,來驗證其功能是否滿足,如下: (A) 驗證 1:查詢某位會員資料 查詢陸美女小姐的會員資料, SQL 命令如下:
執行結果:
(B) 驗證 2:查詢 A 級會員的名單 查詢目前公司內 A 級會員名單, SQL 命令如下:
執行結果:
(C) 驗證 3:查詢住台南市有哪些會員,及其資料 請查詢住在『台南市』的會員姓名、電話、地址, SQL 命令如下:
執行結果:
(C) 驗證 4:查詢會員編號 8 的會費多少 查詢東南圖書公司有那些書,請列印出書名作者名稱,SQL 命令如下:
執行結果:
11-2-7 資料庫效能分析 如果『真善美健身工廠』僅需要客戶資料管理,Sport_house 資料內一個 customers 資料表就足夠應用,該資料表最大的缺點是會費與會員等級應該是相關聯的,操作者輸入會員等級時,如果會費輸入不相同時,會造成資料不一致現。解決此方法是需產生一個會員等級資料表,由該表內紀錄會費,就不會發生不一致現象,但這樣就需要兩個資料表,我們下一章再說明。 |
翻轉工作室:粘添壽
資料庫系統概論(含邏輯設計)
翻轉電子書系列:
|