学过数据库设计的同学都知道,数据库设计有三大范式,但是在实际工作中,三大范式很难被严格的执行。本文将给大家介绍一种常见的、违反范式的数据库设计方案——字段冗余
1 经典示例
先来看一个经典的例子,在一些商城系统里,要显示已购买的订单,一般会显示订单号、下单时间、订单金额、商品名称等,如下图。
正常我们如果按三大范式来设计表,应该是下面这样,包含【订单表】和【商品表】,在【订单表】中用【商品ID】来关联【商品表】
但是这样设计的话,在订单详情页面,要显示商品名称的话,就得用【订单表】+【商品表】关联查询
2 字段冗余设计
上面两张表的设计,从三大范式来说是合理的。但是在项目实际中,查看订单详情是很频繁的操作,每次操作,系统就得关联【订单表】+【商品表】查询。但其实我们只会在订单详情里显示【商品名称】这一个字段,所以我