1,数据库的三大范式

第一范式:列不可分
第二范式:要有主键
第三范式:不可存在传递依赖
比如商品表里面关联商品类别表,那么只需要一个关联字段product_type_id即可,其他字段信息可以通过表关联查询即可得到
如果商品表还存在一个商品类别名称字段,如product_type_name,那就属于存在传递依赖的情况,第三范式主要是从空间的角度来考虑,避免产生冗余信息,浪费磁盘空间

2,反范式设计:(第三范式)

为什么会有反范式设计?
原因一:提高查询效率(读多写少)
比如上述的描述中,显示商品信息时,经常需要伴随商品类别信息的展示,
所以这个时候,为了提高查询效率,可以通过冗余一个商品名称字段,这个可以将原先的表关联查询转换为单表查询

 

原因二:保存历史快照信息
比如订单表,里面需要包含收货人的各项信息,如姓名,电话,地址等等,这些都属于历史快照,需要冗余保存起来,
不能通过保存用户地址ID去关联查询,因为用户的收货人信息可能会在后期发生变更

相关文章:

  • 2022-01-06
  • 2021-09-16
  • 2022-02-25
  • 2021-11-18
  • 2022-02-11
  • 2021-04-01
  • 2021-11-14
  • 2022-12-23
猜你喜欢
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-25
  • 2021-12-12
  • 2022-03-05
相关资源
相似解决方案