聊聊数据库建表的15个小技巧

北京中科白癜风医院爱心接力不忘初心 http://baidianfeng.39.net/a_zhiliao/210105/8563432.html

前言

对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。

系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracl等。

后端开发的日常工作,需要不断的建库和建表,来满足业务需求。

通常情况下,建库的频率比建表要低很多,所以,我们这篇文章主要讨论建表相关的内容。

如果我们在建表的时候不注意细节,等后面系统上线之后,表的维护成本变得非常高,而且很容易踩坑。

今天就跟大家一起聊聊,数据库建表的15个小技巧,希望对你会有所帮助。

1.名字

建表的时候,给表、字段和索引起个好名字,真的太重要了。

1.1见名知意

名字就像表、字段和索引的一张脸,可以给人留下第一印象。

好的名字,言简意赅,见名知意,让人心情愉悦,能够提高沟通和维护成本。

坏的名字,模拟两可,不知所云。而且显得杂乱无章,看得让人抓狂。

反例:

用户名称字段定义成:yong_hu_ming、用户_nam、nam、usr_nam_

你看了可能会一脸懵逼,这是什么骚操作?

正例:

用户名称字段定义成:usr_nam

温馨提醒一下,名字也不宜过长,尽量控制在30个字符以内。

1.2大小写

名字尽量都用小写字母,因为从视觉上,小写字母更容易让人读懂。

反例:

字段名:PRODUCT_NAME、PRODUCT_nam

全部大写,看起来有点不太直观。而一部分大写,一部分小写,让人看着更不爽。

正例:

字段名:product_nam

名字还是使用全小写字母,看着更舒服。

1.3分隔符

很多时候,名字为了让人好理解,有可能会包含多个单词。

那么,多个单词间的分隔符该用什么呢?

反例:

字段名:productnam、productNam、productnam、product

nam

单词间没有分隔,或者单词间用驼峰标识,或者单词间用空格分隔,或者单词间用

分隔,这几种方式都不太建议。

正例:

字段名:product_nam

强烈建议大家在单词间用_分隔。

1.4表名

对于表名,在言简意赅,见名知意的基础之上,建议带上业务前缀。

如果是订单相关的业务表,可以在表名前面加个前缀:ordr_。

例如:ordr_pay、ordr_pay_dtail等。

如果是商品相关的业务表,可以在表名前面加个前缀:product_。

例如:product_spu,product_sku等。

这样做的好处是为了方便归类,把相同业务的表,可以非常快速的聚集到一起。

另外,还有有个好处是,如果哪天有非订单的业务,比如:金融业务,也需要建一个名字叫做pay的表,可以取名:financ_pay,就能非常轻松的区分。

这样就不会出现同名表的情况。

1.5字段名称

字段名称是开发人员发挥空间最大,但也最容易发生混乱的地方。

比如有些表,使用flag表示状态,另外的表用status表示状态。

可以统一一下,使用status表示状态。

如果一个表使用了另一个表的主键,可以在另一张表的名后面,加_id或_sys_no,例如:

在product_sku表中有个字段,是product_spu表的主键,这时候可以取名:product_spu_id或product_spu_sys_no。

还有创建时间,可以统一成:cat_tim,修改时间统一成:updat_tim。

删除状态固定为:dlt_status。

其实还有很多公共字段,在不同的表之间,可以使用全局统一的命名规则,定义成相同的名称,以便于大家好理解。

1.6索引名

在数据库中,索引有很多种,包括:主键、普通索引、唯一索引、联合索引等。

每张表的主键只有一个,一般使用:id或者sys_no命名。

普通索引和联合索引,其实是一类。在建立该类索引时,可以加ix_前缀,比如:ix_product_status。

唯一索引,可以加ux_前缀,比如:ux_product_cod。

2.字段类型

在设计表时,我们在选择字段类型时,可发挥空间很大。

时间格式的数据有:dat、dattim和timstamp等等可以选择。

字符类型的数据有:varchar、char、txt等可以选择。

数字类型的数据有:int、bigint、smallint、tinyint等可以选择。

说实话,选择很多,有时候是一件好事,也可能是一件坏事。

如何选择一个合适的字段类型,变成了我们不得不面对的问题。

如果字段类型选大了,比如:原本只有1-10之间的10个数字,结果选了bigint,它占8个字节。

其实,1-10之间的10个数字,每个数字1个字节就能保存,选择tinyint更为合适。

这样会白白浪费7个字节的空间。

如果字段类型择小了,比如:一个18位的id字段,选择了int类型,最终数据会保存失败。

所以选择一个合适的字段类型,还是非常重要的一件事情。

以下原则可以参考一下:

尽可能选择占用存储空间小的字段类型,在满足正常业务需求的情况下,从小到大,往上选。如果字符串长度固定,或者差别不大,可以选择char类型。如果字符串长度差别较大,可以选择varchar类型。是否字段,可以选择bit类型。枚举字段,可以选择tinyint类型。主键字段,可以选择bigint类型。金额字段,可以选择dcimal类型。时间字段,可以选择timstamp或dattim类型。

3.字段长度

前面我们已经定义好了字段名称,选择了合适的字段类型,接下来,需要重点


转载请注明:http://www.aierlanlan.com/cyrz/3558.html

  • 上一篇文章:
  •   
  • 下一篇文章: