數(shù)據(jù)庫命名規(guī)范

一缠俺、數(shù)據(jù)庫命名規(guī)范

采用26個英文字母(區(qū)分大小寫)和0-9的自然數(shù)(經(jīng)常不需要)加上下劃線''組成症副,命名簡潔明確,多個單詞用下劃線''分隔,一個項目一個數(shù)據(jù)庫拌禾,多個項目慎用同一個數(shù)據(jù)庫

二、數(shù)據(jù)庫表命名規(guī)范

2.1數(shù)據(jù)表命名規(guī)范

(1)采用26個英文字母(區(qū)分大小寫)和0-9的自然數(shù)(經(jīng)常不需要)加上下劃線''組成盆耽,命名簡潔明確蹋砚,多個單詞用下劃線''分隔

(2)全部小寫命名,禁止出現(xiàn)大寫

(3)禁止使用數(shù)據(jù)庫關(guān)鍵字摄杂,如:name坝咐,time ,datetime析恢,password等

(4)表名稱不應(yīng)該取得太長(一般不超過三個英文單詞)

(5)表的名稱一般使用名詞或者動賓短語

(6)用單數(shù)形式表示名稱墨坚,例如,使用 employee映挂,而不是 employees

明細表的名稱為:主表的名稱+字符dtl(detail縮寫)

例如:采購定單的名稱為:po_order泽篮,則采購定單的明細表為:po_orderdtl

(7)表必須填寫描述信息(使用SQL語句建表時)

2.2命名規(guī)范

①模塊_+功能點 示例:alllive_log alllive_category

②功能點 示例:live message

③通用表 示例:all_user

2.3待優(yōu)化命名示例

①冗余:

錯誤示例:yy_alllive_video_recomment yy_alllive_open_close_log

說明:去除項目名,簡化表名長度柑船,去”yy_”

②相同類別表命名存在差異帽撑,管理性差

錯誤示例:yy_all_live_category yy_alllive_comment_user

說明:去除項目名,統(tǒng)一命名規(guī)則鞍时,均為”yy_alllive_”開頭即可

③命名格式存在差異

錯誤示例:yy_showfriend yy_user_getpoints yy_live_program_get

說明:去除項目名亏拉,統(tǒng)一命名規(guī)則,動賓短語分離動賓邏輯順序統(tǒng)一

三逆巍、數(shù)據(jù)庫字段命名規(guī)范

3.1字段命名規(guī)范

(1)采用26個英文字母(區(qū)分大小寫)和0-9的自然數(shù)(經(jīng)常不需要)加上下劃線''組成及塘,命名簡潔明確,多個單詞用下劃線''分隔

(2)全部小寫命名锐极,禁止出現(xiàn)大寫

(3)字段必須填寫描述信息

(4)禁止使用數(shù)據(jù)庫關(guān)鍵字笙僚,如:name,time 灵再,datetime password 等

(5)字段名稱一般采用名詞或動賓短語

(6)采用字段的名稱必須是易于理解肋层,一般不超過三個英文單詞

(7)在命名表的列時,不要重復(fù)表的名稱

例如翎迁,在名employe的表中避免使用名為employee_lastname的字段

(8)不要在列的名稱中包含數(shù)據(jù)類型

(9)字段命名使用完整名稱栋猖,禁止縮寫

3.2命名規(guī)范

①名詞 示例:user_id user_name sex

②動賓短語 示例:is_friend is_good

3.3待優(yōu)化命名示例

①大小寫規(guī)則不統(tǒng)一

錯誤示例:user_id houseID

說明:使用統(tǒng)一規(guī)則,修改為”user_id”鸳兽,”house_id”

②加下劃線規(guī)則不統(tǒng)一

錯誤示例:username userid isfriend isgood

說明:使用下劃線進行分類,提升可性罕拂,方便管理揍异,修改為”user_name”全陨,”user_id”,”is_friend”衷掷,”is_good”

③字段表示不明確

錯誤示例:uid pid

說明:使用完整名稱辱姨,提高可讀性,修改為”user_id”戚嗅,”person_id”

3.4字段類型規(guī)范

(1)所有字段在設(shè)計時雨涛,除以下數(shù)據(jù)類型timestamp、image懦胞、datetime替久、smalldatetime、uniqueidentifier躏尉、binary蚯根、sql_variant、binary 胀糜、varbinary外颅拦,必須有默認值,字符型的默認值為一個空字符值串’’教藻,數(shù)值型的默認值為數(shù)值0距帅,邏輯型的默認值為數(shù)值0

(2)系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”,數(shù)值1表示為“真”括堤,datetime碌秸、smalldatetime類型的字段沒有默認值,必須為NULL

(3)用盡量少的存儲空間來存儲一個字段的數(shù)據(jù)

使用int就不要使用varchar痊臭、char哮肚,

用varchar(16)就不要使varchar(256)

IP地址使用int類型

固定長度的類型最好使用char,例如:郵編(postcode)

能使用tinyint就不要使用smallint广匙,int

最好給每個字段一個默認值允趟,最好不能為null

(4)用合適的字段類型節(jié)約空間

字符轉(zhuǎn)化為數(shù)字(能轉(zhuǎn)化的最好轉(zhuǎn)化,同樣節(jié)約空間鸦致、提高查詢性能)

避免使用NULL字段(NULL字段很難查詢優(yōu)化潮剪、NULL字段的索引需要額外空間、NULL字段的復(fù)合索引無效)

少用text類型(盡量使用varchar代替text字段)

3.5數(shù)據(jù)庫中每個字段的規(guī)范描述

(1)盡量遵守第三范式的標準(3NF)

1.任何一張表都應(yīng)該有主鍵分唾,并且每一個字段原子性不可再分抗碰;
image.png
2.在第一范式的基礎(chǔ)上,所有非主鍵字段完全依賴主鍵,不能產(chǎn)生部分依賴(如存在復(fù)合主鍵);(多對多绽乔,三表張表弧蝇,關(guān)系表兩個外鍵)

t_student學(xué)生表
sno(pk)    sname
-------------------------------
1                張三
2                李四
3                王五
-------------------------------

t_teacher 講師表
tno(pk)      tname
1                王老師
2                張老師
3                李老師
-------------------------------
t_student_teacher_relation 師生關(guān)系表
id(pk)    sno(fk)    nto(fk)
-------------------------------
1            1              3
2            1              1
3            2              2
4            2              3
5            3              1
6            3              3
-------------------------------

3.建立在第二范式之上,所有非主鍵字段直接依賴主鍵,非主鍵字段不能傳遞依賴于主鍵字段看疗。(不要產(chǎn)生傳遞依賴)(一對多沙峻,兩張表,多的表加外鍵)
班級t_class
con(pk)    cname
-------------------------------
1               班級1
2               班級2
-------------------------------

學(xué)生t_student
sno(pk)    snabbe    classon(fk)
-------------------------------
101          張1                1
102          張2                1
103          張3                2
104          張4                2
105          張5                2
-------------------------------

(2)如果字段事實上是與其它表的關(guān)鍵字相關(guān)聯(lián)而未設(shè)計為外鍵引用两芳,需建索引

(3)如果字段與其它表的字段相關(guān)聯(lián)摔寨,需建索引

(4)如果字段需做模糊查詢之外的條件查詢,需建索引

(5)除了主關(guān)鍵字允許建立聚集索引外怖辆,其它字段所建索引必須為非聚集索引

四是复、SQL語言編碼規(guī)范

4.1大小寫規(guī)范

(1)所有關(guān)鍵字必須大寫,如:INSERT竖螃、UPDATE淑廊、DELETE、SELECT及其子句斑鼻,IF……ELSE蒋纬、CASE、DECLARE等

(2)所有函數(shù)及其參數(shù)中除用戶變量以外的部分必須大寫

(3)在定義變量時用到的數(shù)據(jù)類型必須小寫

4.2注釋

描述性注釋將大大增加文本的可讀性和可維護性坚弱,本規(guī)范建議:

(1)注釋以英文為主蜀备,實際應(yīng)用中,發(fā)現(xiàn)以中文注釋的SQL語句版本在英文環(huán)境中不可用荒叶,為避免后續(xù)版本執(zhí)行過程中發(fā)生某些異常錯誤碾阁,建議使用英文注釋

(2)注釋盡可能詳細、全面創(chuàng)建每一數(shù)據(jù)對象前些楣,應(yīng)具體描述該對象的功能和用途脂凶,傳入?yún)?shù)的含義應(yīng)該有所說明,如果取值范圍確定愁茁,也應(yīng)該一并說明蚕钦,取值有特定含義的變量(如boolean類型變量),應(yīng)給出每個值的含義

(3)注釋語法:單行注釋鹅很、多行注釋

單行注釋:注釋前有兩個連字符(--)對變量嘶居、條件子句可以采用該類注釋

多行注釋:符號之間的內(nèi)容為注釋內(nèi)容,對某項完整的操作建議使用該類注釋

(4)注釋簡潔促煮,同時應(yīng)描述清晰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邮屁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子菠齿,更是在濱河造成了極大的恐慌佑吝,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绳匀,死亡現(xiàn)場離奇詭異芋忿,居然都是意外死亡炸客,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門戈钢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚷量,“玉大人,你說我怎么就攤上這事逆趣。” “怎么了嗜历?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵宣渗,是天一觀的道長。 經(jīng)常有香客問我梨州,道長痕囱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任暴匠,我火速辦了婚禮鞍恢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘每窖。我一直安慰自己帮掉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布窒典。 她就那樣靜靜地躺著蟆炊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瀑志。 梳的紋絲不亂的頭發(fā)上涩搓,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音劈猪,去河邊找鬼昧甘。 笑死,一個胖子當(dāng)著我的面吹牛战得,可吹牛的內(nèi)容都是我干的充边。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贡避,長吁一口氣:“原來是場噩夢啊……” “哼痛黎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刮吧,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤湖饱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后杀捻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體井厌,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了仅仆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片器赞。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖墓拜,靈堂內(nèi)的尸體忽然破棺而出港柜,到底是詐尸還是另有隱情,我是刑警寧澤咳榜,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布夏醉,位于F島的核電站,受9級特大地震影響涌韩,放射性物質(zhì)發(fā)生泄漏畔柔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一臣樱、第九天 我趴在偏房一處隱蔽的房頂上張望靶擦。 院中可真熱鬧,春花似錦雇毫、人聲如沸玄捕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桩盲。三九已至,卻和暖如春席吴,著一層夾襖步出監(jiān)牢的瞬間赌结,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工孝冒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柬姚,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓庄涡,卻偏偏與公主長得像量承,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子穴店,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容