本文记录一下我的毕设项目(电商)中商品表是如何设计的。

起初并没有考虑太多,只定义了一张 product 表,其中包含商品标题、价格等基本信息。
后来参考京东、淘宝他们的设计时发现这种简单的设计无法实现多种规格的选择,如图:
在这里插入图片描述

于是开始搜索看看别人是怎么设计的。

首先了解到一些电商中的基本概念:
1)SPU:标准化产品单元,就是某一款商品的集合。
2)SKU:库存量单位,是商品销售的最小单位。
用上图的商品举例,荞麦面本身是SPU。其中的每一个规格:100g、400g、1000g的都是一个SKU,SKU各自有独立的库存,且他们都是荞麦面属于同一个SPU。

了解到这些后理所当然的创建了SPU表和SKU表,接着看商品详情页面。
在这里插入图片描述

主要是kv结构的商品属性和一个html的详情。

我的思路是如果商品属性任由商家指定,那么即使都是同一款商品也会出现五花八门的属性,不便于管理;所以系统根据分类预先提供好有哪些属性,商家只要选填即可。(后期可考虑自定义属性)

属性表的核心字段:
在这里插入图片描述

其中基本属性就是在商品详情中展示的,销售属性是可选的规格(对应图1)
这里只预设了属性的k,相对应的就有spu_attr_valuesku_attr_value
其中只有简单的几个字段:id、spuId、attrId(对应属性表中的某个属性)、attrValue(属性的值)

总结一下,表结构大致如下:
在这里插入图片描述

其实关于表结构还有其他优化的点,例如之前提到的html富文本的商品详情内容,属于大字段,可以单独拆分为一个表,减少主表体积,提升查询效率。
商品图片和商品是一对多的关系,也可以单独拆分一个商品图片表,与spu或sku关联。

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐