0
点赞
收藏
分享

微信扫一扫

数据库的三大范式;varchar与char的区别

一、数据库的三大范式

1.1第一范式

数据表中的每一列(每个字段)都不可以再拆分。例如用户表,用户地址还可以拆分成国家、省份、市,这样才符合第一范式。

1.2第二范式

在第一范式的基础上,非主键完全依赖于主键,而不能是依赖于主键的一部分。

例如订单表里面,存储了商品信息(商品价格、商品类型),那就需要把商品ID和订单ID作为联合主键,才满足第二范式。

1.3第三范式

在满足第二范式的基础上,表中的非主键只依赖于主键,而不依赖于其它非主键。

例如订单表就不能存储用户信息(姓名、地址)。

1.4三大范式的关系

第一范式包含第二、三范式,第二范式包含第三范式。

1.5三大范式的作用

三大范式的作用是为了控制数据库的冗余,是对空间的节省。

实际上一般互联网公司的设计都是反范式的,通过冗余一些数据,避免跨表跨库,利用空间换时间,提高性能。

二、varchar与char的区别

数据库的三大范式;varchar与char的区别_第二范式

2.1 char

char表示定长字符串,长度固定;

如果插入数据长度小于char的固定长度则用空格填充;

因为长度固定,所以存取数据比varchar要快很多,甚至能快50%,但因其长度固定所以占据多余的空间,是用空间换时间;

对于char来说,最多能存放的字符个数为255,和编码无关。

2.2 varchar

varchar表示可变长字符串;

插入数据是多长就按照多长来存储;

varchar再存取方面于char相反,因其长度不固定所以存取较慢,但是不占据多余的空间,是时间换空间;

对于varchar来说最多能存放的字符个数为65532

日常设计时,对于长度相对固定的字符串可以使用char,对于长度不确定的可以使用varchar更合适。

举报

相关推荐

0 条评论