MySQL 資料庫命名規範 PDF

2022-09-14 16:57:20 字數 2840 閱讀 8235

一、資料庫涉及字元規範

採用26 個英文本母(區分大小寫)和0-9 這十個自然數,加上下劃線'_'組成,共37個字元.不能出現其他字元(注釋除外).

注意事項:

1) 以上命名都不得超過30 個字元的系統限制.變數名的長度限制為29(不 包括標識字元@).

2) 資料物件、變數的命名都採用英文本元,禁止使用中文命名.絕對不要在對 象名的字元之間留空格.

3) 小心保留詞,要保證你的欄位名沒有和保留詞、資料庫系統或者常用訪問 方法衝突, 當表名或欄位名乃至資料庫名和保留字衝突時,在sql語句裡可以用 撇號(`)括起來。

4) 保持欄位名和型別的一致性,在命名字段並為其指定資料型別的時候一 定要保證一致性.假如資料型別在乙個表裡是整數,那在另乙個表裡也要保證是 整型.

二、資料庫命名規範

資料庫名使用小寫英文以及下劃線組成(weixin+_jd_com).比如: weixin_jd_com

im_jd_com

備份資料庫名使用正式庫名加上備份時間組成,如: dbname_20150206

三、資料庫表命名規範

資料表名使用小寫英文以及下劃線組成(專案名+表資訊)比如:

oa_user

oa_workflow_steps備份資料表名使用正式表名加上備份時間組成,如: oa_user_20150206

oa_workflow_step_20150206
四、字段命名規範

欄位名稱使用單詞組合完成,首字母小寫,單詞之間用「_」分隔,最好是帶表名字首.

如oa_user 表的字段:

user_id

user_name表與表之間的相關聯欄位要用統一名稱

五、索引命名規範

索引名稱為idx_列名_表名縮寫,唯一索引名稱為uniq_列名_表名縮寫,其中表名 和關聯欄位名如果過長,可以取表名、關聯欄位名的前5 個字母,如果表名、關 聯字段為多個單詞組合,可以取前乙個單詞,外加後續其它單詞的首字母作為字 段名

如普通索引:idx_user_name_oa唯一索引uqidx_ user_name_oa

六、字段型別規範

規則:用盡量少的儲存空間來存數乙個欄位的資料.比如能用int 的就不用char 或者varchar能用varchar(20)的就不用varchar(255)時間戳字段盡量用int 型

七、操作規範

如無備註,則表中的第乙個id欄位一定是主鍵且為自動增長; 如無備註,則數值型別的字段請使用unsigned屬性; 如無備註,所有欄位都設定not null,並設定預設值; 所有的數字型別字段,都必須設定乙個預設值,並設為0; 針對varchar型別欄位的程式處理,請驗證使用者輸入,不要超出其預設的長度; 建表時將資料字典中的字段中文名和屬性備註寫入資料表的備註中(「pk、自動 增長」不用寫);

如無說明,建表時一律採用innodb引擎;.盡量採用批量sql語句,減少與資料庫互動次數 提交線上建表改表需求,必須詳細註明涉及到的所有sql語句(包括insert、delete、update),便於dba進行審核和優化。

八、其他設計技巧

1) 避免使用儲存過程、觸發器、檢視、自定義函式等,這些高階特性有效能問題,以及未知bug較多。業務邏輯放到資料庫會造成資料庫的ddl、scale out、sharding等變得更加困難。

2) 分割槽表對分割槽鍵有嚴格要求;分割槽表在表變大後,執行ddl、sharding、單錶恢 復等都變得更加困難。因此禁止使用分割槽表,並建議業務端手動sharding。

3) 使用常用英語(或者其他任何語言)而不要使用拼音首字母縮寫

4) 將大字段、訪問頻率低的字段拆分到單獨的表中儲存,分離冷熱資料, 有利於 有效利用快取,防止讀入無用的冷資料,較少磁碟 io,同時保證熱資料常駐記憶體 提高快取

5)禁止有 super 許可權的應用程式賬號存在, 安全第一。super 許可權會導致 read only 失效,導致較多詭異問題而且很難追蹤。6)不要在mysql資料庫中存放業務邏輯, 資料庫是有狀態的服務,變更複雜而且 速度慢,如果把業務邏輯放到資料庫中,將會限制業務的快速發展。建議把業務邏 輯提前,放到前端或中間邏輯層,而把資料庫作為儲存層,實現邏輯與儲存的分離。

附:建表示例

create table `weixin_test` (

`id` int(20) unsigned not null auto_increment,

`staff_id` int(11) not null comment '操作人員 id',

`staff_name` varchar(50) not null comment '人員名稱',

`url` varchar(200) not null comment '操作路徑',

`method` varchar(10) not null comment '操作方式',

`params` varchar(10) not null comment '操作引數',

`ip` varchar(20) not null comment 'ip',

`time` int(11) not null comment '操作時間',

primary key (`id`),

key `idx_staff_id_ct` (`staff_id `)

) engine=innodb auto_increment=0 default charset=utf8;

【建議收藏】mysql 三萬字精華總結 —索引

【建議收藏】mysql 三萬字精華總結 —分割槽、分表、分庫和主從複製

mysql的庫命名規範 資料庫命名規範(命名規則)

資料庫命名規範 引言 資料庫設計過程中庫 表 欄位等的命名規範也算是設計規範的一部分,不過設計規範更多的是為了確保資料庫設計的合理性 為了專案最終的協調穩定性,而命名規範更多的是為了確保設計的正式和統一。資料庫中欄位等等以什麼樣的命名方式,並不會直接影響到專案的穩定性。制定規範的直接目的是約束行為,...

資料庫命名規範

1 目的 規範資料庫各種物件的命名規則。2 資料庫命名原則 2.1 資料檔案 如果資料庫採用檔案系統,而不是裸裝置,約定下列命名規則 1 資料檔案以表空間名為開始,以.dbf為結尾,全部採用小寫英文本母加數字命名。如該表空間有多個資料檔案,則從第2個資料檔案開始,在表空間名後加 例 對system表...

資料庫命名規範

資料庫命名規範 一 實體和屬性的命名 1 常用單詞已經進行了縮寫,在命名過程當中,根據語義拼湊縮寫即可。注意,由於orcal資料庫會將欄位名稱統一成大寫或者小寫中的一種,所以要求加上下劃線 舉例 定義的縮寫 sales sal 銷售 order ord 訂單 detail dtl 明細 則銷售訂單名...