在完成了秒杀系统的设计之后,我想做一些更有深度的项目提升水平。
我投向了数据库,数据库的重要性不言而喻,很多网络上的网课面向的都是基础的搭建式的项目,因为业务简单,数据库的设计一般十分简单。
但是像苏宁易购这种包含了线上线下的新零售平台,业务是很复杂的。
设计一个健壮的数据库,对于这样的项目来说太关键了。
本系列将以苏宁易购的网站为例,一边分析需求,一边完成新零售平台的数据库设计。
本系列的文章源于本人做项目时的总结,因为最近要面试,把这部分的内容整理上来,也算是帮助自己理清思路,尽量少说废话。
一.围绕商品表的设计
苏宁易购这样的平台,售卖的商品是多种多样的,产品之间的参数截然不同,那么怎样维护一个健壮的商品表?
商品的参数可能多种多样,但是一类商品的参数是一致的。因此使用商品类别这样一个概念,去解决参数的问题。
设计商品表之前要明确两个概念:
SPU(Standard Product Unit)产品的基本单元。
SKU(Stock Keeping Unit)商品的基本单元。
比如小米9作为一款产品,是有很多种配置以及颜色的商品的。
我们在苏宁易购使用搜索的时候,若直接搜索SKU,商品的量过于庞大,搜索十分耗时。可以先通过关键词检索SPU,进而进入SPU检索SKU,这样检索效率才是最高的。
因此我们使用如下的几个表去实现商品表的设计。
SPU表(为了实现高效搜索),SKU表(即商品表),分类表(商品展示需要)参数品类表(为了