在建立資料表時我們需要確保每張表都有經歷過正規化
正規化的目的
這裡會舉一個簡單的例子
訂單編號 客戶姓名 客戶電話 商品名稱 商品價格 數量
001 小明 0912-123-456 筆記本 500 2
001 小明 0912-123-456 滑鼠 200 1
002 小華 0987-654-321 鍵盤 300 1
這是一個訂單表(原始表)
首先來看他有沒有符合第一正規化
因為表的每欄都是唯一,所以已經符合第一正規化
再來是第二正規化,每個非鍵值位都要完全依賴主鍵
假如主鍵是訂單編號+商品名稱
那客戶姓名還有客戶電話都只依賴訂單編號,存在部分依賴,所以可以分成兩張表
訂單表(訂單資訊)
訂單編號 客戶姓名 客戶電話
001 小明 0912-123-456
002 小華 0987-654-321
訂單明細表(商品資訊)
訂單編號 商品名稱 商品價格 數量
001 筆記本 500 2
001 滑鼠 200 1
002 鍵盤 300 1
最後是第三正規化
因為商品價格只依賴商品名稱,所以訂單明細表會再拉一個表出來叫做商品表
所以經過正規化結束後會有三個表
訂單表
訂單編號 客戶姓名 客戶電話
001 小明 0912-123-456
002 小華 0987-654-321
商品明細表
訂單編號 商品名稱 商品價格 數量
001 筆記本 500 2
001 滑鼠 200 1
002 鍵盤 300 1
商品表
商品名稱 商品價格
筆記本 500
滑鼠 200
鍵盤 300
這樣我們就完成正規化所有過程,並且資料變更少,更好更新了