数据库表字段命名规则
一、數(shù)據(jù)庫(kù)命名規(guī)范
采用26個(gè)英文字母(區(qū)分大小寫)和0-9的自然數(shù)(經(jīng)常不需要)加上下劃線'_'組成,命名簡(jiǎn)潔明確,多個(gè)單詞用下劃線'_'分隔,一個(gè)項(xiàng)目一個(gè)數(shù)據(jù)庫(kù),多個(gè)項(xiàng)目慎用同一個(gè)數(shù)據(jù)庫(kù)
?
二、數(shù)據(jù)庫(kù)表命名規(guī)范
2.1數(shù)據(jù)表命名規(guī)范
(1)采用26個(gè)英文字母(區(qū)分大小寫)和0-9的自然數(shù)(經(jīng)常不需要)加上下劃線'_'組成,命名簡(jiǎn)潔明確,多個(gè)單詞用下劃線'_'分隔
(2)全部小寫命名,禁止出現(xiàn)大寫
(3)禁止使用數(shù)據(jù)庫(kù)關(guān)鍵字,如:name,time ,datetime,password等
(4)表名稱不應(yīng)該取得太長(zhǎng)(一般不超過(guò)三個(gè)英文單詞)
(5)表的名稱一般使用名詞或者動(dòng)賓短語(yǔ)
(6)用單數(shù)形式表示名稱,例如,使用 employee,而不是 employees
明細(xì)表的名稱為:主表的名稱+字符dtl(detail縮寫)
例如:采購(gòu)定單的名稱為:po_order,則采購(gòu)定單的明細(xì)表為:po_orderdtl?
(7)表必須填寫描述信息(使用SQL語(yǔ)句建表時(shí))
?
2.2命名規(guī)范
①模塊_+功能點(diǎn)? 示例:alllive_log?? alllive_category
②功能點(diǎn)? 示例:live?? message
③通用表? 示例:all_user
?
三、數(shù)據(jù)庫(kù)字段命名規(guī)范
3.1字段命名規(guī)范
(1)采用26個(gè)英文字母(區(qū)分大小寫)和0-9的自然數(shù)(經(jīng)常不需要)加上下劃線'_'組成,命名簡(jiǎn)潔明確,多個(gè)單詞用下劃線'_'分隔
(2)全部小寫命名,禁止出現(xiàn)大寫
(3)字段必須填寫描述信息
(4)禁止使用數(shù)據(jù)庫(kù)關(guān)鍵字,如:name,time ,datetime password?等
(5)字段名稱一般采用名詞或動(dòng)賓短語(yǔ)
(6)采用字段的名稱必須是易于理解,一般不超過(guò)三個(gè)英文單詞
(7)在命名表的列時(shí),不要重復(fù)表的名稱?例如,在名employe的表中避免使用名為employee_lastname的字段
(8)不要在列的名稱中包含數(shù)據(jù)類型
(9)字段命名使用完整名稱,禁止縮寫
?
3.2命名規(guī)范
①名詞? 示例:user_id??? user_name??? sex
②動(dòng)賓短語(yǔ)? 示例:is_friend?? is_good
?
3.3待優(yōu)化命名示例
①大小寫規(guī)則不統(tǒng)一
錯(cuò)誤示例:user_id??? houseID
說(shuō)明:使用統(tǒng)一規(guī)則,修改為”user_id”,”house_id”
?
②加下劃線規(guī)則不統(tǒng)一
錯(cuò)誤示例:username??? userid??? isfriend??? isgood
說(shuō)明:使用下劃線進(jìn)行分類,提升可性,方便管理,修改為”user_name”,”user_id”,”is_friend”,”is_good”
?
③字段表示不明確
錯(cuò)誤示例:uid??? pid
說(shuō)明:使用完整名稱,提高可讀性,修改為”user_id”,”person_id”
?
3.4字段類型規(guī)范
(1)所有字段在設(shè)計(jì)時(shí),除以下數(shù)據(jù)類型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必須有默認(rèn)值,字符型的默認(rèn)值為一個(gè)空字符值串’’,數(shù)值型的默認(rèn)值為數(shù)值0,邏輯型的默認(rèn)值為數(shù)值0
(2)系統(tǒng)中所有邏輯型中數(shù)值0表示為“假”,數(shù)值1表示為“真”,datetime、smalldatetime類型的字段沒(méi)有默認(rèn)值,必須為NULL
??
四、SQL語(yǔ)言編碼規(guī)范?
4.1大小寫規(guī)范?
(1)所有關(guān)鍵字必須大寫,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等
(2)所有函數(shù)及其參數(shù)中除用戶變量以外的部分必須大寫
(3)在定義變量時(shí)用到的數(shù)據(jù)類型必須小寫
??
操作規(guī)范:
一、【操作規(guī)范】
1. 如無(wú)備注,則表中的第一個(gè)id字段一定是主鍵且為自動(dòng)增長(zhǎng);
2. 如無(wú)備注,則數(shù)值類型的字段請(qǐng)使用UNSIGNED屬性;
3. 如無(wú)備注,排序字段order_id在程序中默認(rèn)使用降序排列;
4. 如無(wú)備注,所有字段都設(shè)置NOT NULL,并設(shè)置默認(rèn)值;
5. 如無(wú)備注,所有的布爾值字段,如is_hot、is_deleted,都必須設(shè)置一個(gè)默認(rèn)值,并設(shè)為0;
6. 所有的數(shù)字類型字段,都必須設(shè)置一個(gè)默認(rèn)值,并設(shè)為0;
7. 針對(duì)varchar類型字段的程序處理,請(qǐng)驗(yàn)證用戶輸入,不要超出其預(yù)設(shè)的長(zhǎng)度;
8. 建表時(shí)將數(shù)據(jù)字典中的字段中文名和屬性備注寫入數(shù)據(jù)表的備注中(“PK、自動(dòng)增長(zhǎng)”不用寫);
9. 如無(wú)說(shuō)明,建表時(shí)一律采用innodb引擎;
二、【常用表名約定】
0. 說(shuō)明:表前綴用項(xiàng)目名稱首字母縮寫;所以表名都小寫,單詞之間用下劃線分開(kāi),單詞都用單數(shù)形式
1. user – 用戶
2. category – 分類
3. goods – 商品、產(chǎn)品等一切可交易網(wǎng)站的物品都用此命名
4. good_gallery – 物品的相冊(cè)
5. good_cate – 物品的分類,除了單獨(dú)作為表名,其他地方分類單詞一律用縮寫cate
4. attr – 屬性
5. article – 文章、新聞、幫助中心等以文章形式出現(xiàn)的,一般都用此命名
6. cart – 購(gòu)物車
7. feedback – 用戶反饋
8. order – 訂單
9. site_nav – 包括頁(yè)頭和頁(yè)尾導(dǎo)航
10. site_config – 系統(tǒng)配置表
11. admin – 后臺(tái)用戶 【RBAC標(biāo)準(zhǔn)表】
12. role – 后臺(tái)用戶角色【RBAC標(biāo)準(zhǔn)表】
13. access – 后臺(tái)操作權(quán)限,相當(dāng)于action【RBAC標(biāo)準(zhǔn)表】
14. role_admin – 后臺(tái)用戶對(duì)應(yīng)的角色【RBAC標(biāo)準(zhǔn)表】
15. access_role – 后臺(tái)角色對(duì)應(yīng)的權(quán)限【RBAC標(biāo)準(zhǔn)表】
16. 待續(xù)
三、【常用列名約定】
1. 表名_id – 通常用作外鍵命名
2. cid – 特殊的編號(hào),帶有元數(shù)據(jù),方便關(guān)聯(lián)查詢,你可以把它理解成類別(層次)編號(hào)。舉個(gè)例子,產(chǎn)品在分類時(shí),往往需要將其歸類到子分類下,相應(yīng)的字段中也一般只記錄子分類的id,這時(shí)若需要知道該產(chǎn)品屬于哪個(gè)主分類,就需要通過(guò)子分類信息再查詢到主分類信息,這是比較麻煩的,cid字段就是要解決這個(gè)問(wèn)題。一般的站點(diǎn)幾十個(gè)分類肯定是夠用了,所以這里假設(shè)某一主分類的cid為11,則子分類的cid從1101開(kāi)始編號(hào),處理時(shí)只需截取前兩位數(shù)值便可知道該產(chǎn)品屬于哪一個(gè)主分類了。
3. add_time – 添加時(shí)間、上架時(shí)間等
4. last_time – 最后操作時(shí)間,如登錄、修改記錄
5. expire_time – 過(guò)期時(shí)間
6. name – 商品名稱、商家名稱等,不要跟title混用,title只用于文章標(biāo)題、職稱等
7. price – 價(jià)格
8. thumb – 只要是列表頁(yè)面中的窗口圖,一律用此命名
9. image_src – 相冊(cè)中的圖片地址一律用此命名,不要出現(xiàn)各種img,image,img_url,thumb_url等
10. head_thumb – 用戶頭像, 雖然有點(diǎn)長(zhǎng),一定要遵守。不要出現(xiàn)上述情況
11. image_alt – 相冊(cè)中圖片的alt屬性
12. desc – 描述、簡(jiǎn)介,比如goods_desc,不要出現(xiàn)goods_txt這種
13. details – 詳情、文章內(nèi)容等
14. order_id – 排序
15. telephone – 座機(jī)號(hào)碼
16. mobile – 手機(jī)號(hào)碼
17. phone – 當(dāng)不區(qū)分手機(jī)和座機(jī)時(shí),請(qǐng)用phone命名
18. address – 地址,單獨(dú)出現(xiàn)不要用addr縮寫,組合出現(xiàn)時(shí)需用縮寫,比如mac地址,mac_addr
19. zipcode – 郵編
20. region – 地區(qū),大的區(qū)域,比如記錄杭州市、溫州市等
21. area – 區(qū)域,小的,比如上城區(qū),江干區(qū)等
22. avg_cost – 人均消費(fèi)
23. 待續(xù)
四、【數(shù)據(jù)表字段設(shè)計(jì)范例】
分類表(t_category)
| 字段名 | 列名 | 類型 | 屬性備注 | 說(shuō)明 |
| 流水號(hào) | id | int(10) | PK、自動(dòng)增長(zhǎng) | ? |
| 特殊編號(hào) | cid | varchar(4) | 第一個(gè)主分類為11、第一個(gè)子分類為1101,類推,僅支持二級(jí)分類 | ? |
| 名稱 | name | varchar(10) | 頁(yè)面中需注明輸入不超過(guò)10個(gè)字 | ? |
| 父分類 | pid | int(10) | ? | ? |
| 統(tǒng)計(jì)量 | count | int(10) | ? | ? |
| 是否熱門 | is_hot | tinyint(1) | ? | ? |
| 首頁(yè)顯示 | is_index | tinyint(1) | ? | ? |
| 排序 | order_id | int(10) | ? | ? |
?
?[表命名規(guī)范]
1.具備統(tǒng)一前綴,對(duì)相關(guān)功能的表應(yīng)當(dāng)使用相同前綴,如acl_xxx,house_xxx,ppc_xxx;其中前綴通常為這個(gè)表的模塊或依賴主實(shí)體對(duì)象的名字,通常來(lái)講表名為:業(yè)務(wù)_動(dòng)作_類型,或是業(yè)務(wù)_類型;
2.表名使用英文小寫單詞,如果有多個(gè)單詞則使用下劃線隔開(kāi);
3.表名簡(jiǎn)介,使用常見(jiàn)單詞,避免使用長(zhǎng)單詞和生僻詞;
4.表引擎取決于實(shí)際應(yīng)用場(chǎng)景及當(dāng)前數(shù)據(jù)庫(kù)中的已經(jīng)存在的存儲(chǔ)引擎;日志及報(bào)表類表建議用myisam,與交易,審核,金額相關(guān)的表建議用innodb引擎。總體來(lái)講數(shù)據(jù)庫(kù)默認(rèn)innodb;
5.數(shù)據(jù)表必須有主鍵,且建議均使用auto_increment的id作為主鍵(與業(yè)務(wù)無(wú)關(guān)),和業(yè)務(wù)相關(guān)的要做為唯一索引;
6.默認(rèn)使用utf8字符集(由于數(shù)據(jù)庫(kù)定義使用了默認(rèn),數(shù)據(jù)表可以不再定義,但為保險(xiǎn)起見(jiàn),建議都寫上);
7.所有的表都必須有備注,寫明白這個(gè)表中存放的數(shù)據(jù)內(nèi)容;
8.預(yù)估表數(shù)據(jù)量,如果數(shù)據(jù)量較大(超過(guò)500w)則需要考慮分表策略。可以等量均衡分表或根據(jù)業(yè)務(wù)規(guī)則分表均可。要分表的數(shù)據(jù)表必須與DBA商量分表策略;
9.職責(zé)相近的表,命名規(guī)則應(yīng)該相同;如合同申請(qǐng),賬戶信息,交友相關(guān)等;
?
[字段命名規(guī)范]
1.數(shù)據(jù)庫(kù)字段命名與表名命名類似:
2.使用小寫英文單詞,如果有多個(gè)單詞使用下劃線隔開(kāi);
3.使用簡(jiǎn)單單詞,避免生僻詞;
4.字段應(yīng)當(dāng)有注釋,描述該字段的用途及可能存儲(chǔ)的內(nèi)容,如枚舉值則建議將該字段中使用的內(nèi)容都定義出來(lái);
5.是別的表的外鍵均使用xxx_id的方式來(lái)表明;
6.表的主鍵一般都約定成為id,自增類型;
7.時(shí)間字段,除特殊情況一律采用int來(lái)記錄unix_timestamp;
8.網(wǎng)絡(luò)IP字段,除特殊情況一律用bigint來(lái)記錄inet_aton值;
9.所有字段,均為非空,最好顯示指定默認(rèn)值;
10.有些驅(qū)動(dòng)對(duì)tinyint支持不夠好,通常建義按容量來(lái)選擇字段;
11. text字段盡量少用,或是拆到冗余表中;
?
轉(zhuǎn)載于:https://www.cnblogs.com/jnhs/p/10008517.html
總結(jié)
以上是生活随笔為你收集整理的数据库表字段命名规则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 池化层的back proporgatio
- 下一篇: oracle 如何查看oracle数据库