商品中心怎么设计?一次讲清 SPU、SKU、类目、属性、上下架与索引建模
商品中心怎么设计一次讲清 SPU、SKU、类目、属性、上下架与索引建模大家好我是一名有 4 年工作经验的 Java 后端开发。商品中心几乎是电商系统的基础盘很多后续问题其实都和商品模型有没有设计稳直接相关。这篇文章我想系统聊一聊商品中心到底应该怎么设计。个人主页文章目录商品中心怎么设计一次讲清 SPU、SKU、类目、属性、上下架与索引建模一、商品中心到底在管什么二、SPU 和 SKU 一定要分清2.1 SPU2.2 SKU三、推荐拆分的核心模型四、商品状态怎么设计五、最容易踩的坑5.1 SPU 和 SKU 不分5.2 属性体系没抽象5.3 搜索字段和商品字段完全耦合5.4 上下架状态设计太简单六、面试中怎么回答七、总结八、结尾一、商品中心到底在管什么很多人会把商品中心理解成商品表类目表其实远不止这些。商品中心通常要管理SPU / SKU类目品牌属性销售属性图文详情上下架状态搜索索引字段也就是说商品中心不是一张商品表而是一整套商品主数据系统。二、SPU 和 SKU 一定要分清2.1 SPU更像标准商品抽象。例如iPhone 16 128G2.2 SKU更像具体可售卖单元。例如iPhone 16 黑色 128G 国行版很多系统一开始不拆后面规格一多就很痛苦。三、推荐拆分的核心模型至少建议有这些spuskucategorybrandproduct_attrsku_sale_attr这样后面搜索库存价格购物车才比较容易接。四、商品状态怎么设计商品通常建议至少拆草稿待审核已上架已下架已删除而且SPU 状态SKU 可售状态有时也要分开。五、最容易踩的坑5.1 SPU 和 SKU 不分后面规格、库存、价格都会乱。5.2 属性体系没抽象类目扩展会越来越痛苦。5.3 搜索字段和商品字段完全耦合后面 ES 同步和商品变更会很乱。5.4 上下架状态设计太简单审核、禁售、库存售罄等状态很难表达。六、面试中怎么回答如果面试官问你商品中心一般怎么设计你可以这样回答第一我会先把商品中心理解成主数据系统而不是一张商品表所以至少会拆出 SPU、SKU、类目、品牌、属性和销售属性这些核心模型。第二SPU 和 SKU 我一定会分清因为 SPU 更偏标准商品抽象SKU 才是实际可售卖单元价格、库存、购物车、订单通常都更依赖 SKU。第三商品状态我不会只设计成简单的上下架而会结合草稿、待审核、已上架、已下架、已删除等业务状态一起建模必要时 SPU 和 SKU 状态也会拆开。七、总结商品中心真正难的不是表多而是如何让模型稳定后续业务好接搜索库存价格都能自然接入如果只记一句结论我觉得可以记住这句商品中心最怕一开始图省事真正稳的设计一定是先把 SPU、SKU、属性和状态边界拆清楚。八、结尾如果你觉得这篇文章对你有帮助欢迎点赞、收藏、关注。后面我会继续整理一些更偏实战的 Java 后端和电商系统设计文章尽量少写空泛概念多写真实项目里会踩到的坑。