案例-新零售数据库设计

[L178 - 阿里新零售数据库设计与实战 (升级版) 提升数据库综合能力]

业务介绍

新零售是更高效的零售,从线上回到线下,使用线上技术和线下结合。

  1. 企业先从小程序起家,开发成本低,上线周期短,功能比较简单明确
  2. 小程序做到一定的程度之后,再开发 APP,承载更多功能
  3. 用户使用量再大,功能再多之后,再搭建购物网站,服务器等技术成本很高
  4. 最后发展线下门店,投入非常巨大

拼多多上市到现在还没有自己的购物网站,重点发展就是小程序和 APP。

业务数据库设计流程

  1. 需求分析:根据用户的需求,分析出需要记录的数据

  2. 概要设计:根据分析出的数据,设计 ER 图

  3. 详细设计:将 ER 图转换成数据库模型图和数据表

ER 图

ER 图也称实体关系图,提供了表示实体类型、属性和关系的方法,用来描述现实世界的概念模型。

  • 复合属性是多个属性的组合
  • 多值属性是某个属性可以有多个不同的取值
  • 派生属性是不保存在实体中的属性
  • 可选属性是允许没有值的属性

数据模型图

  • 表名
  • 字段名
  • 字段类型

CRUD

  • 批量插入数据忽略失败的数据行
  • 实现不存在就插入,存在就更新
  • 使用 FROM 子查询,替代 WHERE 子查询

表设计

什么是 SPU?

SPU 是标准产品单位,SPU 描述一个产品的各种特性。

比如:苹果 12 min 手机是一个产品,选择颜色、内存后的是一个上架商品。区分为产品表,商品表,一个产品中有多个商品。

什么是 SKU?

SKU 是库存进出计量的单位,SKU 是物理上不可分割的最小存货单位。

image

image

设计品牌和分类的关系

品牌表

imageimage

商品分类表

商品有三级分类:

  • 手机/数码/配件 -> 手机通信 -> 手机
  • 手机/数码/配件 -> 手机配件 -> 移动电源

在表里添加一个字段,记录上一个节点的 ID。就是每条记录都去关联它上一条记录,使用链表结构。各大论坛的留言表都是这样设计的。就算有一千级的分类,数据表都能存储。

imageimage

商品分类与品牌关联表结构

image

设计产品表和商品表

产品表

产品表不能删除,会影响到其它表,只能设置下架。

imageimage

商品表

imageimage

商品表images字段是JSON,里面存放商品详细图片,轮播图片。

商品参数字段也是JSON,具体的字段名和参数表一一对应。通过spu_id去获取对于的产品,再通过产品表获取对于的品类,再通过品类获取具体的参数。

设计商品的库存表

库存能定义到商品表吗?

  • 如果零售系统没有分店和仓库,那么可以直接将库存定义到商品表。

  • 如果存在分店和仓库,那就不能这样设计。

零售店与仓库是多对多的关系。

Last Updated: 2023/8/2 10:45:34
Contributors: licong96, 黎聪