資料標準化有助消除冗余,第三正規化(3NF)在效能、擴展性與資料完整性間取得最佳平衡。核心原則:「One Fact in One Place」,每個表僅包含其基本屬性,非本身屬性需分解,表間透過外鍵關聯。例如客戶與訂單分離為 Customer 與 Order 兩表,訂單表僅存鍵值指向客戶表。為效率考量,有時刻意不正規化也是必要的。
採用資料驅動而非硬編碼,策略變更與維護更靈活。例如外部資料源連線資訊、工作流資料、角色權限皆可存於資料庫,將維護責任交給使用者。
設計時預留可能變更的欄位(如西方姓氏因婚姻變更),建立獨立表並附加起始/終止日追蹤變化。
採用 26 個英文字母(區分大小寫)、0-9 數字、底線 _,共 63 字元。注意:不超過 30 字元限制;變數名長度限 29 字元(不含 @);禁用中文命名與空格;避開保留字;保持欄位名與型別一致性。
正式庫:小寫英文+底線,說明應用系統,如 web_19floor_net、web_car。備份庫:正式庫名+備份時間,如 web_19floor_net_20070403。
小寫英文+底線,相關應用共用前綴(如論壇 cdb_、部落格 supe_,前綴不超過 5 字)。備份表同理加時間後綴。
單詞組合,首字母小寫,後續單詞首字母大寫,建議帶表前綴。如 web_user 表的 userId、userName、userPassword。關聯欄位跨表統一命名。
原則:用最少儲存空間。能用 INT 不用 CHAR/VARCHAR;能用 TINYINT 不用 INT;能用 VARCHAR(20) 不用 VARCHAR(255)。時間戳用 INT(如 created),DATETIME 用 gmtCreated。
模組化文件,含表名、作者、日期、版本、描述、欄位明細(名稱、型別、說明)。
BLOB/TEXT 或大型欄位建索引,佔用空間過大。關鍵字全大寫,表名/庫名用反引號包裹。例:SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = 'aeolus';