首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料庫命名與設計規範完整指南

     編輯:MySQL 資料庫相關知識

一、設計原則

1. 標準化與正規化

資料標準化有助消除冗余,第三正規化(3NF)在效能、擴展性與資料完整性間取得最佳平衡。核心原則:「One Fact in One Place」,每個表僅包含其基本屬性,非本身屬性需分解,表間透過外鍵關聯。例如客戶與訂單分離為 Customer 與 Order 兩表,訂單表僅存鍵值指向客戶表。為效率考量,有時刻意不正規化也是必要的。

2. 資料驅動

採用資料驅動而非硬編碼,策略變更與維護更靈活。例如外部資料源連線資訊、工作流資料、角色權限皆可存於資料庫,將維護責任交給使用者。

3. 考慮未來變化

設計時預留可能變更的欄位(如西方姓氏因婚姻變更),建立獨立表並附加起始/終止日追蹤變化。

二、字元規範

採用 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。

七、設計文件規範

模組化文件,含表名、作者、日期、版本、描述、欄位明細(名稱、型別、說明)。

八、索引使用原則

  1. 邏輯主鍵用唯一複合索引,系統鍵用唯一非複合索引,外鍵用非複合索引。
  2. 別忘了為外鍵建索引,常用於關聯查詢。
  3. 不為 BLOB/TEXT 或大型欄位建索引,佔用空間過大。
  4. 小型表不建索引,若頻繁增刪,索引維護成本高於全表掃描。

九、SQL 語句規範

關鍵字全大寫,表名/庫名用反引號包裹。例:SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = 'aeolus';

十、其他設計技巧

  1. 避免觸發器,改用其他方式實現;必須用時集中文件化。
  2. 使用通用英文命名,避免編碼或拼音縮寫。
  3. 建立專表儲存通用資訊(版本、檢查記錄、文件名、客戶資訊)。
  4. 引入版本控制機制,追蹤結構變更歷史。
  5. 完善文件:命名規範、限制、函數、註釋,利於長期維護。
  6. 測試、測試、再測試:用實際資料驗證欄位型別滿足業務需求。
  7. 檢查設計:透過應用程式原型驗證資料模型與取數邏輯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved