資料庫中的命名規範

2021-08-05 22:11:08 字數 4072 閱讀 9836

裝載自:

[資料庫命名規範]

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 明細 則銷售訂單名...