第一正規化的關鍵:資料表內沒有重複的紀錄,可以透過設定主鍵 (Primary Key, PK) 達成。
第二正規化的關鍵:將容易重複資料、只和表格部分相關的欄位,拆分成不同表格,建立外來鍵 (Foreign Key),和其它表格產生關連。
第三正規化的關鍵:如果可以從其它欄位計算或推斷出來,就不要設立一個欄位去紀錄。
資料庫正規化以後,如果要修改資料,很容易遇到其它欄位沒有一起更新的問題。
設計時就要問自己,哪些資料要留下歷史紀錄,才不會遇到更新資料後,其它欄位產生落差的問題;或是另外寫 SQL 語法定期 / 觸發一同更新其它欄位的資料。
這可能連第三正規化也沒辦法解決。
後記:
經過了一年,又成長了一些。
也希望這一系列的文章,對讀者有幫助。
謝謝大家。