sku设计mysql_SPU、SKU及相应宽表设计思路
SPU和SKU的作用
SPU和SKU是电商产品具有的两个重要概念。在电商网站设计中,它对应了一件商品在数据库表中的具体存储方式。抛开数据库来描述某一件商品,自然不需要额外加入这两个比较复杂的概念,但是考虑到电商系统中对商品信息的调用非常频繁,而数据的展现方式又各式各样,因此如果不对商品信息在数据库中存储方式进行合理设计,可能会导致数据库查询复杂化、页面请求变慢等问题。对前端而言,spu、sku可以对商品描述进行合理分级,便于在不同页面根据需求展示不同详细程度的产品信息。对后端而言,sku、sku可以统一和规范化产品的数据库设计,减少在管理商品(增/删/改/查)时数据库的开销。
SPU和SKU的定义及他们之间的关系
SPU全称Standard Product Unit,即标准化产品单元。简单理解就是某一种产品。
SKU全称Stock Keeping Unit,即库存量单元。即具体的一件商品。
这两个概念字面意思上区分较为模糊,他们是在不同层次上对商品进行描述,我们可以这么理解:
标准化产品单元(SPU),标准化,即被广泛认知的的东西。在市场中我们买卖东西,我们会说某某品牌的xx产品如何如何,而不会去说某某品牌的xx产品xx颜色xx尺寸的产品如何如何。就好比手机发布会中,说我们今年推出了一款新的手机,型号为iphone11,而不会说我们今年推出了iphone 11 128g 玫瑰金、iphone 11 128g 深空灰等等。标准化,也可以理解为对描述产品的详细程度上的一种标准,但需要注意的是这个标准是对产品的最小粒度描述。也就是说不同的spu就是不同的产品了,如iphone11和iphone8,虽然都是iphone,但是普遍认为iphone产品的最小粒度在型号上,因此他们就是两个产品了。
库存量单元(SKU),顾名思义就是库存商品单元,是要具体往外出售 的物品。SPU告诉了我们一个物品是什么东西,SKU则告诉了我们这个物品是一件具有什么特征什么规格尺寸当前是否还有库存的东西。
注意我上面的描述中,非常谨慎地使用了产品和商品两个词。个人理解,产品对应市场,商品对应顾客(和销售)。例如常说的,“9月国内手机市场排行第一名被OPPO A9拿下”(产品/spu),“我在xx商城抢购了个国行iphone x,黑色128g的,买的时候就剩x台了”(商品/sku)
数据库宽表设计思路
宽表的设计,我是从最精确的产品信息sku宽表开始的。通过sku的商品名称字段关联spu表,获取产品信息。而在spu表中,分别通过分类字段和品牌字段去和另外两个表关联,获取产品内容。
即设计4个基础宽表,分别为sku、spu、品牌、分类,关联逻辑如下图所示:
宽表逻辑.png
sku设计mysql_SPU、SKU及相应宽表设计思路相关推荐
- 数据库设计:用户登录系统数据库表设计
用户登录系统数据库表设计 最近看了看公司后台用户登录系统的设计, 比较混乱, 主要还是因为URS和Oauth以及URS第三方这三个登录形式各不相同导致的. 下面着重介绍一下涉及到第三方登录中需要注意的 ...
- java评论回复表设计_评论回复功能数据表设计
CREATE TABLE `comment` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `topic_id` int(10) unsigned ...
- mysql 好友列表设计_好友列表:关系数据库表设计
这是一个多对多的关系,这是一个relator表是必需的. create table Person ( person_id int not null primary key, username varc ...
- 数仓建模—宽表的设计
宽表的设计 高内聚低耦合 宽表是数仓里面非常重要的一块,数仓是分层的,这是技术进步和时代变化相结合的产物,数仓的分层式为了更好地管理数仓以及更加高效地进行数据开发. 宽表主要出现在dwd 层和报表层, ...
- 数仓建模,宽表是什么?如何设计?
数仓建模,宽表是什么?如何设计? 宽表的设计 为什么要建设宽表 宽表的好处和不足 如何设计宽表 总结 宽表的设计 其实宽表是数仓里面非常重要的一块,宽表主要出现在dwd 层和报表层,当然有的人说dws ...
- 数仓建模,什么是宽表?如何设计?好处与不足
宽表的设计 其实宽表是数仓里面非常重要的一块,宽表主要出现在dwd 层和报表层,当然有的人说dws 层也有宽表,从字面意义上讲就是字段比较多的数据库表, 通常情况下是将很多相关的数据包括维度表.实时. ...
- [转]科普 | 什么是宽表?
科普 | 什么是宽表?一文带你了解 数据仓库宽表_数据宽表_吕归尘0的博客-CSDN博客 一.什么是"宽表"? "宽表"从字面上的意思就是字段(列)比较多的数据 ...
- 走向云计算之HBase模式设计及表设计案例
一.概述 HBase有以下几个特点: HBase列的可以动态增加,并且列为空就不存储数据,节省存储空间. hbase自动切分数据,使得数据存储自动具有水平scalability. Hbase可以提供高 ...
- HBase 宽表和高表
一.宽表和高表定义 HBase 中的表可以设计为高表(tall-narrow table) 和 宽表(flat-wide table): 宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数 ...
- Oracle优化-表设计
前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer.Share Pool.Redo Log Buffer等内存模块配置不合理, ...
最新文章
- 糟糕的css用法 1
- unity不规则碰撞_Unity UGUI学习系列(二) ------ PolygonCollider2D实现不规则碰撞范围
- python官方网站地址-index
- 重构改善既有代码的设计(笔记)
- 《Python》进程收尾线程初识
- axios (get post请求、头部参数添加)傻瓜式入门axios
- matlab 由移相角如何产生移相脉冲,整流电路控制角移相范围是怎么确定的?
- mysql 丛集_MYSQL
- 在Objective-C中浅谈面向对象
- 《计算机网络课程设计(第2版)》——2.4节课程设计分析
- python测试工程师简历模板_测试工程师英文简历模板范文
- 权重较高的几个分类信息网站
- 日记侠:你的文章为什么阅读量会那么高?
- 智能窗帘电机究竟有何亮点?智汀小米有何优势?
- 线段树版子题【HDU - 1166 敌兵布阵】【HDU-1754 I Hate It】【HDU-1698 Just a Hook】【OpenJ_Bailian3439A Simple Pro】
- 9大时序异常检测方法汇总
- Mediator模式(调停者模式)
- 基础学习-设计模式-行为型
- 安装固态硬盘时候遇到的问题
- Linux Ubuntu命令大全