## 1、數據庫命名規范
* 采用26個英文字母(小寫)和0-9的自然數(經常不需要)加上下劃線'_'組成;
* 命名簡潔明確;
## 2、數據庫表名命名規范
* 采用26個英文字母(小寫)和0-9的自然數(經常不需要)加上下劃線'_'組成;
* 命名簡潔明確,多個單詞用下劃線'_'分隔,例如:user, user_profile, user_role
* 表前綴'user_'可以有效的把相同關系的表顯示在一起;
* 盡量使用名詞而不是動詞。
## 3、數據庫表字段名命名規范
* 采用26個英文字母(小寫)和0-9的自然數(經常不需要)加上下劃線'_'組成;
* 命名簡潔明確,多個單詞用下劃線'_'分隔,例如:user表字段 user_id, user_name, password, email, mobile
* 表與表之間的相關聯字段名稱要求盡可能的相同;
* 盡量使用名詞而不是動詞。
## 4 數據庫表設計規范
* 優先使用InnoDB存儲引擎。
* 存儲精確浮點數使用DECIMAL替代FLOAT和DOUBLE。
* 使用UNSIGNED存儲非負數值。
* 整形定義中不添加長度,比如使用INT,而不是INT(4)
* 使用短數據類型,比如取值范圍為0-80時,使用TINYINT UNSIGNED。
* 盡可能不使用TEXT、BLOB類型。
* 用盡量少的存儲空間來存數一個字段的數據 ,例如:能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(256);
* 固定長度的類型使用char, 例如:郵編;
* VARCHAR(N),N表示的是字符數不是字節數,比如VARCHAR(255),可以最大可存儲255個漢字,需要根據實際的寬度來選擇N。
* VARCHAR(N),N盡可能小,因為MySQL一個表中所有的VARCHAR字段最大長度是65535個字節,進行排序和創建臨時表一類的內存操作時,會使用N的長度申請內存。
* VARCHAR(N),N>5000時,使用BLOB類型。
* 表字符集選擇UTF8。
* 使用VARBINARY存儲變長字符串。
* 存儲年使用YEAR類型。
* 存儲日期使用DATE類型。
* 存儲時間(精確到秒)使用TIMESTAMP類型,因為TIMESTAMP使用4字節,DATETIME使用8個字節。
* 字段定義為NOT NULL。
* 將過大字段拆分到其他表中。
* 不在數據庫中使用VARBINARY、BLOB存儲圖片、文件等。