為了最大限度保證合生通mysql資料庫設計編碼規劃化,使開發可以寫出高質量查詢語句。制定本資料庫開發設計規範。
適用的人員包括:使用mysql資料庫的研發人員
適用資料庫版本:mysql5.6及以後
適用於資料庫名、物件名如表、字段、索引、儲存過程,函式等的命名約定。
3.1表名
3.1.1規則
命名規則為:***_yyy_tablename。***表示子系統的名稱,由三個字母構成;yyy表示子系統中的子模組的名稱(可以沒有);tablename為表含義
tablename
規則如下:
使用英文單詞或片語作為表名,不得使用漢語拼音
用名詞和名詞短語作表名
不使用複數
正確的命名,例如:
sys_user
,biz_order
3.2儲存過程
3.2.1規則
命名規則為:proc_***_yyy_storedprocedurename。proc表示儲存過程字首,***表示子系統的名稱,由三個字母構成;yyy表示子系統中的子模組的名稱(可以沒有);storedprocedurename為儲存過程含義
3.2.2 storedprocedurename
規則如下:
3.2.3
儲存過程正確的命名
例如:proc_sys_insertuser
proc_sys_searchuserbyuserid
proc_sys_deleteuserbyuserid
3.3檢視
規則如下:
檢視的命名採用v_***_yyy_viewname_v。v_表示檢視字首,***表示子系統的名稱,由三個字母構成;yyy表示子系統中的子模組的名稱(可以沒有);_v字尾表示檢視,viewname部分表示檢視的含義。
viewname
規則如下:
○ 用名詞和名詞短語,
○ 不使用複數
○ 盡量謹慎地使用縮寫
○ 盡量不要和關鍵字重合
○ viewname中使用下劃線
檢視正確的命名,例如:
v_sys_userview
v_biz_userorderview
3.4索引
規則如下:
idx_table_name_n1
表示單列普通索引,多個索引序號遞增
idx_table_name_u1
表示單列或多列唯一索引,多個索引序號遞增
idx_table_name_c1
表示復合索引,多個索引序號遞增 如:
tst_sample
表member_id上的唯一索引: idx_tst_sample_u1
sys_news
表title上的普通索引: idx_sys_news_n1
3.5主鍵
主鍵命名:pk_table_name
示例:tst_sample表的主鍵: pk_tst_sample
3.6外來鍵
外來鍵命名:fk_table_name_column_name
多單詞組成的column name,取前幾個單詞首字母,加末單詞組成column_name。 如:
tst_sample
表user_id欄位的外來鍵: fk_tst_sample_uid
tst_sample
表type_id欄位的外來鍵: fk_tst_sample_tid
適用於資料庫名、物件名如表、字段、索引、儲存過程,函式等的命名約定。
4.1整型
規則:統一使用bigint資料型別
示例:id bigint not null
4.2浮點型
規則:浮點型別資料統一使用decimal資料型別
示例:je decimal(20,2) ,表示整數為18位,小數2位,共20位。
4.3日期型
規則:日期型別統一使用datetime資料型別
示例:created datetime not null default now()
禁用timestamp原因如下:
4.4字元型
規則:統一使用varchar(n),n表示字元,大於4000字元使用text型別,大於8000字元使用longtext型別。
示例:name varchar(20),content text,html longtext。
5.1規範約定
1.盡可能遵守資料的設計規範3nf 規定,可適當存在冗餘資料
表內的每乙個值都只能被表達一次。
表內的每一行都應該被唯一的標識(有唯一鍵)。
表內不應該儲存依賴於其他鍵的非鍵資訊。
2.實體表盡可能包含以下字段
編號(id)、**(code)
建立人(created by)、建立時間(creation time)
修改人(modified by)、修改時間(modification time)
刪除標誌(delete status)
其含義如下:
編號是系統內的唯一標識,一般為自增列
**是客戶為這個實體的編碼,根據需要確定是否保留
建立人是是指資料庫記錄建立人,根據需要確定是否保留
建立時間是指資料庫記錄建立時間,預設為now()
修改人是是指資料庫記錄修改人,根據需要確定是否保留
修改時間是指資料庫記錄修改時間,預設為now()
刪除標誌是本條記錄是否已刪除的標誌(0:沒有刪除;1:已經刪除),資料中
的資料不做真正刪除,只設定這個標誌
這五個欄位的命名規則如下
實體名+欄位名稱,如user_id、user_code、created_by、creation_time、modified_by 、modification_time 、delete_status。
這五個欄位的型別和長度規則如下:
欄位名稱
字段型別 描述
user_id
bigint 編號
user_code
varchar2
(30) **
created_by
varchar(20)
建立人creation_time
datetime
建立時間
modified_by
varchar(20)
修改人modification_time
datetime
修改時間
delete_status
varchar(1)
刪除標誌
5.2字段規範
5.1綜合
5.2查詢
錯誤:select
service_id,service_name
from service_promotion
where to_char(gmt_modified,』yyyy-mm-dd』)
= 『20001-09-01』;
正確:select service_id,service_name
from service_promotion
where gmt_modified >= to_date(『2001-9-01』,』yyyy-mm-dd』)
and gmt_modified < to_date(『2001-9-02』,』yyyy-mm-dd』);
實際線上慢查詢例子說明
錯誤:select category_id, category_name from category
where category_id = 『123』; #id』s type is number
正確:select category_id, category_name from category
where category_id = 123; #id』s type is number
5.3刪除、修改
如果一次刪除表中資料量較大,採用迴圈方式進行刪除,通過主鍵一次刪除一行,刪除一批後再進行提交。
如果刪除資料量相對較少,確保刪除的列上有索引。
MYSQL資料庫開發規範
自己總結的mysql開發規範,夠用就行了。1 表 1.1 表必須要有主鍵,主鍵使用自動遞增,型別為int。1.2 表名使用有意義的英文單詞,可用下劃線分割。如需使用縮寫時,不可使用意義不明的縮寫。1.3 需要多表join的字段,資料型別保持絕對一致。1.4 字段命名時需要加上表名,確保所有表中的字段...
Mysql 資料庫開發規範
一 基礎規範 1 必須使用innodb儲存引擎 解讀 支援事務 行級鎖 併發效能更好 cpu及記憶體快取頁優化使得資源利用率更高 2 必須使用utf8字符集 解讀 萬國碼,無需轉碼,無亂碼風險,節省空間 3 資料表 資料字段必須加入中文注釋 解讀 n年後誰知道這個r1,r2,r3欄位是幹嘛的 4 禁...
MySQL 資料庫開發規範
一 表 單個表的字段數控制在 20個以下,最好不超過50個 單個表不超過20個char 或varchar 字段 單錶不超過50個純int欄位 拒絕大sql,大事務,批量操作 二 字段型別定義 字段型別選取原則 1 選取合適範圍的資料型別 2 只取正值的數值型別,新增 unsigned屬性 3 固定長...