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