在项目中,数据库表的命名对于项目开发的影响也是至关重要的,在业务开发中,清晰的命名对于实际开发中的逻辑梳理至关重要,尤其是对于数据库表的数量较多的项目来说,混乱的表命名将会严重影响开发效率。
表名采用26个英文字母(区分大小写)和0-9自然数(一般不需要)加上下划线“_”组成,多个单词用下划线“_”分隔
1.表名的格式一般为【表类型_业务含义】:
表名一般由两部分拼接而成,一部分是表示实际的业务含义,比如面向对象中的实际的对象的名称;另一部分是前缀或者后缀(具体是前缀和后缀要看公司或者具体的项目来定,规模大一点的公司是有自己的设计规范这里不做赘述),表示的就是这张表的类型。
2.全部小写或者全部大写(视情况而定,有的项目只允许小写)
3.表的名称一般使用名词或者动宾短语
4.不建议使用缩写,填写完整单词
5.表的名字不能取太长,一般不超过三个英文单词,不推荐中文拼音
6.多对多的连接表可以使用两个表的业务含义作为表名
7.表名的单词一般都为单数(例:推荐Employee,不推荐Employees)
8.不要使用数据库关键字,如name、time、datetime、password等
9.使用SQL语句建表时,必须填写描述信息
10.常用业务含义表名约定:
user | 用户 |
category | 分类 |
goods | 商品、物品 |
good_gallery | 物品相册 |
good_cate | 物品分类 |
attr | 属性 |
article | 文章 |
cart | 购物车 |
feedback | 用户反馈 |
order | 订单 |
site_nav | 页头和页尾导航 |
site_config | 系统配置表 |
admin | 后台用户 |
role | 后台用户角色 |
access | 后台操作权限 |
role_admin | 后台用户对应的角色 |
access_role | 后台角色对应的权限 |
我在项目中经常遇到的表名的分类规范如下(如缺请评论补充):
表前缀或后缀 | 命名解释 | 数据表类型 | 数据特点 | 举例 |
tm_/_tm | table of master data | 主 | 数据量基本稳定,不随时间而线性增长 | 分公司,产品,经销商 |
ts_/_ts | table of system | 系统级 | 其数据量基本稳定,不随时间而线性增长 | 用户权限控制,配置参数 |
tl_/_tl或者sys_/_sys | table of log | 日志 | 随时间而线性增长,但会安排定时任务定期删除旧数据,保持总体数据量稳定 | |
sd_/_sd | 数据字典 | |||
dt_/_dt | 系统字典 | |||
ti_/_ti | table of interface | 接口 | 随时间而线性增长,但会安排定时任务定期删除旧数据,保持总体数据量稳定。 | |
tt_/_tt | table of transaction data | 业务交易 | 随时间而线性增长,用户平常关注最近若干天的数据,少数情况下会查阅很久以前的数据,数据量非常大 | 订单表、交易记录表 |
tr_,tmr_,tsr_,ttr_/_tr,_tmr,_tsr,_ttr | table of relationship | 关系 | 记录某些表中数据之间关系 | 订单与买家或者卖家之间的关系 |