1. 程式人生 > 資料庫 >41. 談談資料庫設計的三大正規化及反正規化

41. 談談資料庫設計的三大正規化及反正規化

資料庫的三大正規化

  1. 列不可分
  2. 要有主鍵
  3. 非主鍵欄位不能相互依賴(不能有傳遞依賴)

反正規化設計:(第三正規化)

為什麼會有反正規化設計?

原因一:提高查詢效率(讀多寫少)

為了提高查詢效率,可以通過冗餘一個商品名稱欄位,這個可以將原先的表關聯查詢轉換為單表查詢

原因二:儲存歷史快照資訊

比如,裡面需要包含收貨人的各項資訊,如姓名,電話,地址等等,這些都屬於歷史快照,需要冗餘儲存起來,
不能通過儲存使用者地址ID去關聯查詢,因為使用者的收貨人資訊可能會在後期發生變更