裝載自:
[資料庫命名規範]
1. 盡量簡潔明義,能夠一眼看出來這個資料庫是用來做什麼的;
2. 使用名詞作為資料庫名稱,並且只用英文,不用中文拼音;
3. 使用英文本母,全部小寫,控制在3-7個字母以內;
4. 如果有多個單詞,則使用下劃線隔開,不建義駝峰命名;
例如,每個公司都有crm業務,那就叫做xx_crm, 字符集統一utf8。字符集踩過的坑很多,為了通用性統一utf8。
create
database
xx_crm default
character
set=utf8;
[表命名規範]
1. 具備統一字首,對相關功能的表應當使用相同字首,如acl_***,house_***,ppc_***;其中字首通常為這個表的模組或依賴主實體物件的名字,通常來講表名為:業務_動作_型別,或是業務_型別;
2. 表名使用英文小寫單詞,如果有多個單詞則使用下劃線隔開;
3.表名簡介,使用常見單詞,避免使用長單詞和生僻詞;
4. 表引擎取決於實際應用場景及當前資料庫中的已經存在的儲存引擎;日誌及報表類表建議用myisam,與交易,審核,金額相關的表建議用innodb引擎。總體來講資料庫預設innodb;
5. 資料表必須有主鍵,且建議均使用auto_increment的id作為主鍵(與業務無關),和業務相關的要做為唯一索引;
6. 預設使用utf8字符集(由於資料庫定義使用了預設,資料表可以不再定義,但為保險起見,建議都寫上);
7. 所有的表都必須有備註,寫明白這個表中存放的資料內容;
8. 預估表資料量,如果資料量較大(超過500w)則需要考慮分表策略。可以等量均衡分表或根據業務規則分表均可。要分表的資料表必須與dba商量分表策略;
9. 職責相近的表,命名規則應該相同;如合同申請,賬戶資訊,交友相關等;
create
table
`house_refresh_log`
( `id`
int(11) not
null
auto_increment comment
'自增id'
, `fangid`
int(11) not
null
comment
'房貼子id'
, `refresh_time`
int(11) not
null
comment
'重新整理時間'
, primary key
(`id`
), unique
key`fangid`
(`fangid`
)) engine
=innodb
default
charset
=utf8 comment
='房重新整理記錄表'
[字段命名規範]
1. 資料庫字段命名與表名命名類似:
2. 使用小寫英文單詞,如果有多個單詞使用下劃線隔開;
3. 使用簡單單詞,避免生僻詞;
4. 字段應當有注釋,描述該字段的用途及可能儲存的內容,如列舉值則建議將該字段中使用的內容都定義出來;
5. 是別的表的外來鍵均使用***_id的方式來表明;
6. 表的主鍵一般都約定成為id,自增型別;
7. 時間字段,除特殊情況一律採用int來記錄unix_timestamp;
8. 網路ip欄位,除特殊情況一律用bigint來記錄inet_aton值;
9. 所有字段,均為非空,最好顯示指定預設值;
10. 有些驅動對tinyint支援不夠好,通常建義按容量來選擇字段;
11. text欄位盡量少用,或是拆到冗餘表中;
create
table
`wanted_post`
( `id`
int(10) not
null
auto_increment,
`puid`
int(10) unsigned
notnull
, `user_id`
int(10) not
null
comment
'發貼使用者的id'
, `username`
varchar
(50) not
null
comment
'發貼使用者的使用者名稱'
, `city`
smallint
(4) not
null
comment
'所在城市'
, `ip`
bigint
(14) not
null
comment
'發帖人的ip'
, `district_id`
tinyint(2
) not
null
comment
'所在區域的id'
, `district_name`
varchar
(20) not
null
comment
'行政區名字'
, `street_id`
tinyint(2
) not
null
comment
'所在街道(地標)的id'
, `street_name`
varchar
(20) not
null
comment
'小區名字'
, `title`
varchar
(255
) not
null
comment
'帖子的標題'
, `description`
text
notnull
comment
'帖子詳情描述'
, `post_at`
int(11) not
null
comment
'使用者發帖時間,資料建立的時間,使用整型儲存'
, `refresh_at`
int(11) not
null
comment
'帖子被修改的時間,整型儲存'
, `show_time`
int(11) not
null
comment
'帖子顯示時間'
, `age_max`
int(11) not
null
default
'0'comment
'招聘最小年齡'
, `age_min`
int(11) not
null
default
'0'comment
'招聘最大年齡'
, `post_refresh_at`
int(11) not
null
comment
'重新整理時間'
, primary key
(`id`
), unique
key`idx_puid`
(`puid`
), key
`user_id_index`
(`user_id`
), key
`post_at_index`
(`post_at`
), key
`refresh_at_index`
(`refresh_at`
), key
`show_time_index`
(`show_time`
)) engine
=innodb
auto_increment=55295
default
charset
=utf8 comment
='招聘帖子表'
mysql的庫命名規範 資料庫命名規範(命名規則)
資料庫命名規範 引言 資料庫設計過程中庫 表 欄位等的命名規範也算是設計規範的一部分,不過設計規範更多的是為了確保資料庫設計的合理性 為了專案最終的協調穩定性,而命名規範更多的是為了確保設計的正式和統一。資料庫中欄位等等以什麼樣的命名方式,並不會直接影響到專案的穩定性。制定規範的直接目的是約束行為,...
資料庫命名規範
1 目的 規範資料庫各種物件的命名規則。2 資料庫命名原則 2.1 資料檔案 如果資料庫採用檔案系統,而不是裸裝置,約定下列命名規則 1 資料檔案以表空間名為開始,以.dbf為結尾,全部採用小寫英文本母加數字命名。如該表空間有多個資料檔案,則從第2個資料檔案開始,在表空間名後加 例 對system表...
資料庫命名規範
資料庫命名規範 一 實體和屬性的命名 1 常用單詞已經進行了縮寫,在命名過程當中,根據語義拼湊縮寫即可。注意,由於orcal資料庫會將欄位名稱統一成大寫或者小寫中的一種,所以要求加上下劃線 舉例 定義的縮寫 sales sal 銷售 order ord 訂單 detail dtl 明細 則銷售訂單名...