1数据库设计的3F 三范式
①原子性:每列不可再分
id name address
1 刘涛 浙江省杭州市余杭区
name不再分,
在国民健康电商项目中,address要分,区分省,市,区/县
某些字段要不要再分,取决于业务
②唯一性:例如主键
id order_no(唯一) createtime
1 GM1234 2018-04-06
在项目订单表中,不以id作为订单的唯一标识,而是以order_no。项目内部的RPC调用id,外部使用order_no
在分布式系统中要保证订单号的幂等性,也就是唯一性,项目中提前生成订单号,存放在redis中,需要直接去取
③不要有冗余数据
sku_id goods_name category
1729 小康智能音箱 智能家居
1658 耐克运动鞋 鞋服
...
可以设计成这样
sku_id goods_name categoryid
1729 小康智能音箱 10
1658 耐克运动鞋 8
...
categoryid categoryname
8 鞋服
10 智能家居
在实际项目中其实不一定要严格遵循3F,而是要根据自己的项目实际需求,设计合理的数据库
例如:
category salenum
8 1000
9 2000
10 3000
如果要所有商品的销售总量