今天要來介紹關聯式資料庫(Relational Database)的基本概念之一
也就是資料庫正規化(Database normalization)
為什麼要學正規化?
主要的目的是:去重複及避免資料更新時異常
重複的資料表示說如果我要異動一筆資料
那就要找出其所有重複的資料一併更新
如果說很多張資料表都有重複的資料
那將會是大工程 而且少更新到一個地方的話往後要追問題根本大海撈針
(就譬如說我換電話號碼[資料異動]的話
那就要通知各種親朋好友、銀行、會寄重要簡訊給你的人[同步更新各種資料表])
所以要輕鬆地維護整個資料表就需要做好正規化
增加資料正確性及良好的效能
然而真的像老師們說的一定要以正規化的方式來設計資料表嗎?
其實並不然(甚至還有反正規化的規則呢!
若資料量小的時候還要把資料切分得很乾淨
那麼你在撈資料時會發現用到一大堆join的語法
變得把簡單的事情複雜化了