MySQL 數據庫命名規范.PDF

      網友投稿 1021 2022-05-29

      一、數據庫涉及字符規范

      采用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 '操作時間',

      MySQL 數據庫命名規范.PDF

      PRIMARY KEY (`id`),

      KEY?`idx_staff_id_ct`?(`staff_id?`)

      ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

      【建議】MySQL 三萬字精華總結 —索引

      【建議】MySQL 三萬字精華總結 —分區、分表、分庫和主從復制

      MySQL 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【Java核心面試寶典】Day15、“Java容器”高頻面試題總結!???
      下一篇:C語言總結_語句、運算符
      相關文章
      亚洲午夜成人精品无码色欲| 亚洲一级毛片免观看| 亚洲最大的成人网站| 99久久亚洲精品无码毛片 | 亚洲va国产va天堂va久久| 精品国产亚洲一区二区在线观看 | 国产亚洲色婷婷久久99精品91| 亚洲成AV人网址| 亚洲Av无码国产情品久久| 国产午夜亚洲精品不卡电影| 一本色道久久88—综合亚洲精品| 亚洲a级片在线观看| 亚洲制服丝袜中文字幕| 亚洲1234区乱码| tom影院亚洲国产一区二区| 久久精品国产亚洲av水果派| 亚洲精品国产精品乱码不卡√| 亚洲欧洲精品无码AV| 国产亚洲成AV人片在线观黄桃| 国产亚洲综合网曝门系列| 亚洲av无码不卡| 久久亚洲中文字幕精品有坂深雪| 亚洲宅男永久在线| 亚洲精彩视频在线观看| 亚洲一级毛片在线观| 精品国产日韩久久亚洲| 亚洲国产精品日韩av不卡在线| 国产亚洲精品2021自在线| 国产精品亚洲αv天堂无码| 亚洲色中文字幕无码AV| 久久精品7亚洲午夜a| 亚洲综合色丁香麻豆| 亚洲天堂一区二区三区四区| 7777久久亚洲中文字幕| 亚洲人成色777777老人头| 极品色天使在线婷婷天堂亚洲| 亚洲人成人无码网www国产| 亚洲精品乱码久久久久久按摩| 亚洲宅男永久在线| 国产日本亚洲一区二区三区| 亚洲Av永久无码精品黑人 |