判斷指標
規範化程度高的資料庫通常擁有:大量窄表、極少寬表。
五大要求
要求一:避免可為空的欄位
- 空值增加處理複雜度,降低效能。
- 對策:設定預設值(如 0、'N/A');或將稀疏可空欄位拆至副表,以主鍵關聯。
要求二:消除重複值或欄位
- 例:產品開發者可能多位、客戶聯絡人多角色。
- 錯誤設計:在主表加「聯絡人1、電話1、聯絡人2、電話2...」導致結構僵化、歷史追蹤困難。
- 正確:建立獨立聯絡人表,以客戶 ID 關聯,透過視圖整合。
要求三:每筆記錄擁有唯一識別碼
- 習慣用系統自動產生的 ID(非業務欄位)作主鍵。
- 補充:加入「行號」欄位(以 10 為間距),供前端排序調整,不影響主鍵穩定性。
要求四:資料庫物件統一前綴命名
- 依前端模組定義:物料模組
M_、訂單模組 C_。
- 物件類型前綴:視圖
V_、函數 F_、觸發器 T_。
- 團隊共識並嚴格執行,利於維護與引用。
要求五:單一實體類型資料儲存
- 實體類型 ≠ 資料類型,指業務物件本身(如「圖書」與「作者」)。
- 錯誤:合併存放導致資料冗餘、更新異常、刪除遺失。
- 正確:拆分為「圖書基本資料」、「作者基本資料」、「圖書作者對應」三表。
結語
規範化無絕對技術強制,仰賴 DBA 經驗累積。上述五原則為核心基礎,實務上尚含資料類型、預存程序等細節規範。