数据库设计三大范式

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

A:数据库表中所有字段都只具有单一属性

B:单一属性的列是由基本数据类型组成

C:设计出来的表都是简单的二维表

第一范式就是无重复的列。

A:要求表中只具有一个业务主键【不能存在非主键列对主键的依赖关系】

A:每一个非主属性既不部分依赖于也不传递依赖于业务主键

备注:完全满足三大范式设计的表结构,有时候得不到良好的SQL查询性能。

反范式化设计

① 反范式化设计针对范式化设计而言,

②反范式化是为了性能和读取效率而 适当的对数据库设计范式要求进行违反

③允许存在少量冗余,换句话说就是 使用空间来换时间


范式化设计的优缺点

优点:

①尽量减少数据冗余

②数据操作快

③表小

缺点:

①数据查询需要关联多表

②更难添加索引

反范式化设计的优缺点

优点:

①减少表关联

②更好的索引优化

缺点:

①存在数据冗余及数据异常维护

②数据修改存在更高成本


物理设计

定义数据库、表及字段命名规范

  1. 可读性原则【custAddress而不是custaddress】
  2. 表意性原则 【提现存储的数据内容 或体现存储过程的功能】
  3. 长名原则 【尽可能减少使用或者不用缩写】

选择合适的存储引擎

表中字段合适的数据类型

  1. 优先考虑数字类型
  2. 其次是日期、时间类型
  3. 最后是字符类型
  4. 对于相同级别的数据类型,应该优先选择占用空间小的数据类型

浮点类型:

列类型

存储空间

是否精确类型

float

4个字节

double

8个字节

decimal

每4个字节存9个数字,小数点占一个字节

日期类型:

timestamp类型 5.6之前占用空间8个字节 之后5个字节 与时区有关

datatime类型 占用空间4个字节 与时区无关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值