今天给大家介绍一下数据库设计过程中字段的选择原则,也就是什么时候用int、什么时候用varchar、什么时候用char等等之类的

原创 2018年04月17日 13:49:51

我这里给大家介绍的就一些常用的字段,例如:int、float、double、 decimal、varchar、char、 date、datetime等八种常用的类型。

在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。在数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的执行效率造成很大的影响。所以我们在做数据库设计的时候要谨慎再谨慎、小心再小心。

下面说一下字段各自的使用原则:

1.当数据存储的是字符,且长度是一个固定区间定值的话就可以考虑使用char来进行存储,如果字符长度是未知的且长度变化特别明显的话,这个时候最好使用varchar来存储。但是不管使用的是哪种字段来进行存储,都不要把字段的初始长度设置为最大化,应该是根据业务需求来存储最合适的长度字段。

2.数据库设计过程中尽量使用int来作为字段类型,因为在所有的数据类型中int不管是存储空间还是执行速度方面都是最好的。例如:如果业务中存储的都是数据的话而且长度不是特别长的话,就可以考虑使用int来进行存储,或者业务中要对数据进行排序的时候需要使用某一标识权重之类的,也可以使用int来进行存储。但是不要因为int高效,而有意识的把所有字段都设计成int来处理,最终还是要根据业务的具体需求来设计相应的字段。

3.在涉及到金额的时候如果对精度要求不高的情况下可以优先使用float,其次是使用double来进存储。如果对精度要求比较高的情况下最好使用decimal来存储,但是相应的它 的效率没有float和double那么高效。具体使用哪种还是要根据业务的具体需求来选择。

4.关于date和datetime的用法,就要看你想要存储时间的精确值了,如果仅仅是想要精确到天的话使用date就可以了,如要要精确到秒一级别的就要使用datetime了。有时候大家使用datetime的使用却只是存储到天的日期单位时,这个时候就会自动添加00:00:00在数据的后面,作为秒一级别的数据。

5.int(5)和int(10)的区别是什么?想必大家也很好奇吧,其实5和10其实只是显示长度的却别而已,也就是不管int(x)x的值是什么值,存储数字的取值范围还是int本身数据类型的取值范围,x只是数据显示的长度而已。

6.varchar(10)和char(10)的差别是什么?存储超过时候会发生什么问题呢?这个问题其实也相对经典,我也是整了很久才搞清楚的。在MYSQL5,5以后,varchar(x)x中范其实是存储字段的长度范围,就是一个字符代表一个长度,不管这个字符是汉子还是字符都算是一个长度单位。varchar虽然设置长度值,可是因为varchar是可变的长度类型,也就是当存储的长度小于x时候,其实实际的存储空间不是x而是实际存储的字符长度+一些标示空间。当然如果超过x的长度的话还是会报错的。而char(y)中y的值就是存储空间实际的存储长度,超过这个长度的话就会报错。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39740187/article/details/79973773

用C#实现封装

本课程主要讲解了C#中属性的封装,方法的应用,构造函数的重载,以及值传递和引用传递的区别。在学习本课程之前需要掌握一定的基础知识。
  • 2017年07月23日 16:27

mysql char和varchar的区别和适用选择

char对比varchar 相同点:char与varchar都是存储字符串的数据类型 不同点:char是固定长度的字符类型,而varchar是可变长度的字符类型,这个一定要注意。另外进行select时...
  • belen_xue
  • belen_xue
  • 2016-09-26 17:21:56
  • 2519

数据库设计时,varchar和int的选择

设计数据库时,电话号码和邮编等,虽然是数字形式,但是应该设计为varchar类型,如果设计为int型,插入数据库会失效,比如电话会变成另外一串数字,插入0921,结果插入为921.因为int是以数字计...
  • u010865136
  • u010865136
  • 2015-04-01 14:24:12
  • 2115

varchar和nvarchar的区别和什么情况下用?

varchar和nvarchar的区别和什么情况下用?   2011-07-06 10:29:41|  分类: 默认分类 |  标签:varchar  nvarchar  char  nch...
  • qq798833488
  • qq798833488
  • 2014-05-14 22:38:22
  • 1709

MYSQL数据库设计之字段选择原则

今天给大家介绍一下数据库设计过程中字段的选择原则,也就是什么时候用int、什么时候用varchar、什么时候用char等等之类的。关于字段的选择其实很多地方都有进行详细的介绍,我这里只写一下我在使用过...
  • linzhiqiang0316
  • linzhiqiang0316
  • 2016-10-11 21:33:29
  • 2941

MySQL中char与varchar数据类型选择原则

char与varchar比较;针对MyISAM、InnoDB、Memory存储引擎如何选择char与varchar,以及一些可能的误区...
  • hsd2012
  • hsd2012
  • 2016-05-31 15:37:15
  • 7478

mysql——数据库设计中int与varchar中的长度含义

一、int中的长度 提问: MySQL的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同。如果不同,分别是多大? 回答...
  • xcymorningsun
  • xcymorningsun
  • 2017-06-12 14:30:23
  • 1569

char/varchar/nvarchar的区别及其各自的使用场景

char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。当你输入的字符大于指定的数时,它会截取超出的字符。varchar(n...
  • w516162189
  • w516162189
  • 2017-12-27 16:52:32
  • 659

string 和 char *两者的区别是什么 ?什么时候用string好? 什么时候用 char * 合适?什么时候同时都能用?

转载自:http://www.cnblogs.com/GODYCA/archive/2013/01/08/2851923.html A: 区别主要是: string的内存管理是由系统处理,除非系...
  • Johnnyzhunan
  • Johnnyzhunan
  • 2016-08-01 23:09:58
  • 1159

面试题:Integer和int的区别?在什么时候用Integer和什么时候用int

/*  * int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,  * 而Integer的默认值为nu...
  • u012110719
  • u012110719
  • 2015-06-04 21:06:57
  • 7033
收藏助手
不良信息举报
您举报文章:今天给大家介绍一下数据库设计过程中字段的选择原则,也就是什么时候用int、什么时候用varchar、什么时候用char等等之类的
举报原因:
原因补充:

(最多只允许输入30个字)