【28-业务开发-基础业务-属性管理-SKU和SPU基本概念-SKU和SPU关联关系-属性实体之间的关联关系-批量菜单创建】

本文详细介绍了一套高性能、高并发、高可用的三高商城系统的构建过程,涵盖系统架构、微服务组件、前后端开发等内容,并解析了SKU与SPU等核心概念。

一.知识回顾

【0.三高商城系统的专题专栏都帮你整理好了,请点击这里!】
【1-系统架构演进过程】
【2-微服务系统架构需求】
【3-高性能、高并发、高可用的三高商城系统项目介绍】
【4-Linux云服务器上安装Docker】
【5-Docker安装部署MySQL和Redis服务】
【6-Git安装与配置过程、Gitee码云上创建项目、IDEA关联克隆的项目】
【7-创建商城系统的子模块并将修改后的信息使用Git提交到Gitee上】
【8-数据库表结构的创建&后台管理系统的搭建】
【9-前端项目的搭建部署、Node安装、VSCode安装】
【10-Node的安装以及全局环境变量的相关配置&解决启动报错的问题(1.Error: Cannot find module ‘fs/promises)(2.npm安装node-sass报错)】
【11-导入人人generator项目并自动生成相关的文件&商品子模块的调试&公共模块common子模块的抽离与实现&Lombok插件的安装】
【12-商品子模块整合MyBatisPlus技术&其它模块通过generator的自动生成与补充完善】
【13-项目中微服务组件的学习-SpringCloudAlibaba微服务生态体系的学习&SpringCloudAlibaba的依赖管理&项目中SpringBoot和SpringCloud版本的统一】
【14-微服务的注册中心与配置中心Nacos&Windows操作系统上安装Nacos和Linux操作系统上用Docker中安装Nacos&每个子项目模块使用Nacos进行服务注册与发现】
【15-项目中服务的远程调用之OpenFeign&订单模块与商品模块集成使用OpenFeign的案例】
【16-配置中心之Nacos的基本使用&Nacos服务之命令空间、Nacos服务之配置组、Nacos服务之配置拆分】
【17-微服务网关之Spring Cloud Gateway&Spring Cloud Gateway网关服务搭建】
【18-业务开发-基础业务-商品模块-分类管理-前后端管理系统的启动-为分类管理表增加数据-Json插件的下载-返回具有层级目录、父子关系结构的数据】
【19-业务开发-基础业务-商品模块-分类管理-管理系统新建菜单-后端项目renren注册到Nacos注册中心和配置中心去-项目gateway网关模块的搭建-浏览器的同源策略与解决跨域问题实操案例】
【20-业务开发-基础业务-商品模块-分类管理-前端展示后端具有层级关系的目录数据-商品系统三级分类的逻辑删除前后端代码实现】
【21-业务开发-基础业务-商品模块-分类管理-商品系统三级分类的新增类别前后端代码实现-商品系统三级分类的更新类别前后端代码实现-之前错误的Bug修正】
【22-业务开发-基础业务-商品模块-分类管理-商品系统三级分类拖拽页面的功能-前后端代码的逻辑实现-访问测试-拖拽开关的开启和关系-批量更新拖拽数据-批量删除选定数据】
【23-业务开发-基础业务-品牌管理-品牌管理项目搭建-品牌管理实现的增删改查操作测试-后端数据显示状态使用前端组件开关按钮展示-以及数据处理以及测试】
【24-业务开发-基础业务-品牌管理-图片管理-阿里云OSS服务开通和使用-阿里云OSS服务API使用-SpringCloudAlibaba OSS服务的使用】
【25-业务开发-基础业务-品牌管理-图片管理-图片上传方式的三种实现方式-第三方公共服务模块集成到项目中-服务端生成签名实战】
【26-业务开发-基础业务-品牌管理-图片管理-上传图片功能实现-基于阿里云OSS服务-解决跨域问题-设置跨域规则-修改ACL权限为公共读】
【27-业务开发-基础业务-品牌管理-图片管理-添加修改品牌信息并显示图片-前端数据校验-后端数据JSR303校验实现-统一异常处理-自定义响应编码规则-分组校验-自定义校验注解-项目Bug解决】

二.SKU和SPU基本概念

商城系统中的商品信息肯定避免不了SPU和SKU这两个概念

2.1 SKU和SPU关系

SPU = Standard Product Unit (标准化产品单元)

SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。

SKU=stock keeping unit(库存量单位)

SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位。

SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。在服装、鞋类商品中使用最多最普遍。

举个例子:

购买手机的时候,你可以选择华为Mate40系列手机,Mate40系列手机的生产制造商是华为,品牌是华为,手机分类也是华为,不过Mate40系列手机有多款,比如 Mate40 、Mate40 Pro 、 Mate40 Pro +,每款手机的价格也不一样,颜色也不一定一样,那么这个例子中哪些是Spu哪些是Sku呢?

SPU:

手机系列:Mate40系列
厂家:华为
品牌:华为
分类:手机

SKU:

价格
颜色
网络格式

2.2 基本属性和销售属性

基本属性

基本属性就是SPU对应的属性,也就是SKU他们都有的属性,在Java中可以看成static类型的属性,和类绑定

销售属性

就是SKU特有的属性,在Java中可以看成私有的属性,属于对象。

每个分类下的商品共享规格参数和销售属性,有些商品不一定要这个分类下的全部的属性。

  • 属性是三级分类组织起来的
  • 规格参数中有些会提供检索
  • 规格参数也是基本属性,有自己的分组
  • 属性的分组也是三级分类组织起来的
  • 属性名称是确定的,但是值会有不同

数据库表实体之间的关联关系

备注说明:图片来自波波烤鸭,恩师dpb
image.png

三. 批量菜单创建

3.1 菜单创建

  基本的菜单创建维护在之前的文章中我们已经演示过了,接下来后面的菜单我们统一的创建出来。执行如下的SQL脚本到renren-fast数据库中,重新构建增添我们sys_menu表中的数据。

在这里插入图片描述

3.2 创建后前后端项目的测试访问

启动前端的项目:
在这里插入图片描述

启动后端的目前需要的四个微服务模块
在这里插入图片描述

执行后启动项目后重新访问:—》搞定!
在这里插入图片描述

<think>嗯,用户这次想了解全品类电商中后台的SPU-SKU商品模型。从问题看,ta应该是在做电商系统设计或商品管理相关的工作,需要理解这个基础但核心的数据结构。 之前系统指令要求所有数学表达式用$...$格式,但这次问题不涉及数学公式,主要是概念性解释。不过商品模型中的属性组合计算部分可能会用到集合表示,比如SKU由多个属性值组合确定时可以用笛卡尔积表示:$属性集 = {颜色} \times {尺寸} \times {材质}$。 用户特意强调"全品类",说明需要通用性强的模型设计。ta可能遇到多品类商品管理混乱的问题,或是正在搭建新电商平台。考虑到电商后台的复杂性,应该重点解释清楚三个核心概念的关系: 1 SPU作为标准化产品单元(比如iPhone 15),承载技术参数营销信息 2 SKU作为最小库存单元(比如iPhone 15 蓝色 256GB),关联具体库存价格 3 属性系统如何通过笛卡尔积生成SKU,比如$SKU = \prod_{i=1}^{n} P_i$(P_i为第i个属性集合) 需要提醒用户注意全品类下的特殊场景:比如生鲜类商品可能需要批次属性,虚拟商品不需要库存属性等。最后生成的三个问题都针对实际实施痛点:属性爆炸对应技术难题,关联组合是业务需求,而库存设计则是数据建模关键。 引用标识方面,商品模型属于电商领域通用知识,但考虑到用户可能想深入某些细节,在属性继承库存管理两处加了引用标记,方便扩展阅读。 </think> 以下是全品类电商中后台的 **SPU-SKU 商品模型** 的详细解析,采用分层结构说明核心概念、设计逻辑及技术实现要点: --- ### 一、核心概念定义 1. **SPU(Standard Product Unit)** - **定义**:标准化产品单元,描述一类商品基础属性集合(如:iPhone 15、华为Mate 60)。 - **特征**: - 承载 **非销售属性**(品牌、型号、材质、技术参数) - 不涉及库存价格(如:iPhone 15 的屏幕尺寸、处理器型号) -SKU的抽象父级 2. **SKU(Stock Keeping Unit)** - **定义**:最小库存单元,描述可售商品的具体规格(如:iPhone 15 128GB 蓝色)。 - **特征**: - 绑定 **销售属性**(颜色、尺寸、容量等) - 管理独立库存、价格、条码 - 用户最终购买的对象 3. **属性系统** - **关键属性**(SPU级):决定商品唯一性(如:手机型号) - **销售属性**(SKU级):生成SKU的维度(如:颜色、内存) - **普通属性**:补充描述(如:包装清单、保修政策)[^1] --- ### 二、模型关系逻辑 ```mermaid graph TD SPU -->|1:N| SKU SPU -->|关联| 关键属性 SKU -->|关联| 销售属性 销售属性 -->|组合| 属性值(颜色=蓝, 尺寸=XL) ``` 数学表达: 设销售属性集合 $P = \{p_1, p_2, ..., p_n\}$,每个属性 $p_i$ 有值域 $V_i$,则SKU数量为: $$ |\text{SKU}| = \prod_{i=1}^{n} |V_i| $$ (例如:颜色3种 + 尺寸4种 → 生成12个SKU--- ### 三、全品类适配设计 #### 1. **类目-属性挂载** - 不同类目绑定不同属性模板: ```json "手机类目": { "关键属性": ["型号", "品牌"], "销售属性": ["颜色", "内存"], "普通属性": ["电池容量", "分辨率"] } ``` #### 2. **动态属性继承** - SPU继承类目预设属性SKU继承SPU属性并扩展销售属性 - **数据结构示例**: ```json // SPU结构 { "spu_id": "P100", "category": "手机", "attributes": { "品牌": "Apple", "型号": "iPhone 15", "屏幕尺寸": "6.1英寸" // 普通属性 } } // SKU结构 { "sku_id": "SKU101", "spu_id": "P100", "sales_attributes": { "颜色": "蓝色", "内存": "128GB" }, "stock": 100, "price": 5999 } ``` #### 3. **多层级属性支持** - **服装类**:颜色 + 尺寸 + 版型 - **生鲜类**:重量 + 产地 + 等级 - **家电类**:功率 + 能效 + 安装方式 --- ### 四、技术实现关键点 1. **属性组合去重** - 通过 **属性值哈希** 防止重复SKU生成(如:MD5(颜色+尺寸)) 2. **库存隔离策略** - SKU级库存原子操作(Redis+Lua保证扣减一致性) 3. **搜索优化** - SPU属性建索引(Elasticsearch嵌套字段) - SKU销售属性存储为`keyword`类型[^2] --- ### 五、典型业务场景 - **商品发布**:创建SPU → 配置销售属性批量生成SKU - **订单履约**:按SKU锁定库存 - **价格促销**:支持SPU统一折扣或SKU特价 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值