2023年7月13日发(作者:)
数据库表字段命名规则⼀、数据库命名规范采⽤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 – 物品的分类,除了单独作为表名,其他地⽅分类单词⼀律⽤缩写cate4. 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_addr19. zipcode – 邮编20. region – 地区,⼤的区域,⽐如记录杭州市、温州市等21. area – 区域,⼩的,⽐如上城区,江⼲区等22. avg_cost – ⼈均消费23. 待续四、【数据表字段设计范例】分类表(t_category)字段名流⽔号名称⽗分类统计量列名idnamepidcount类型int(10)属性备注PK、⾃动增长说明
特殊编号cidvarchar(4)第⼀个主分类为11、第⼀个⼦分类为1101,类推,仅⽀持⼆级分类
varchar(10)页⾯中需注明输⼊不超过10个字int(10)int(10)tinyint(1)
是否热门is_hot排序
[表命名规范]⾸页显⽰is_indextinyint(1)order_idint(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字段尽量少⽤,或是拆到冗余表中;
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689247310a225655.html
评论列表(0条)