00:00
接下来我们再来说一下电商系统里边的两个基本概念,SPU与SKU。什么是s puu呢?它翻译过来叫标准化产品单元,它指的是一个商品的所有完整特性信息的一个聚合,而与之对应的有一个叫SQ,它翻译过来呢叫库存量单位。他们两个的区别是什么?我们来假想一个例子,如果大家看过iPhone的一些发布会,或者小米手机产品的发布会,他们一开始呢,就会在介绍我们今年发布了三款iPhone,一款呢是XS,一款是XS Max,还是一款XR,然后介绍他们有多少的像素、屏幕分辨率,内置的各种芯片参数,他说了一大堆,大家都很期待它的价格,终于到了揭晓价格的那一刻,啪,我们就会出来这么一个东西,说iPhone X分为三种不同版本,比如我们的银色、黑色以及玫瑰金,而且呢,这些不同版本售价还不一样。
01:00
有8999,有9999,有1099。所以呢,针对于上边我们刚才介绍了iPhone X1大堆的特性,那么iPhone X XS这个我们就把它称为是一个SPU,它聚合了iPhone Xs这款商品的所有特性信息,我们通过这个SPU能知道XS这个商品它的像素、尺寸、分辨率等等各种信息,但是我们真正要去买它,我们就得说清楚我们买它什么版本。XS可能同时发布有几种不同的颜色,包括这些颜色呢,可能配比着不同的内存以及它的存储空间,而且不同的版本决定了不同的售价,包括不同的版本在不同的供货商里边,它拥有的库存量是不一样的。所以我们真正买到手的其实是SKU,这就类似于我们Java里边类与对象的关系,那s puu其实就是这个类,我们这个XS这个商品,我们这类商品它拥有非常多的特性,而我想要买真正的这一个商品,那我要选择它一个具体的版本,包括他库存到底有多少,售价是多少,我们去来购买具体的一个产品,就更像是我们走进手机店里,告诉营业员说我想要一个小米八,那你说的这个小米八它其实就是一个PU,营业员知道你想要哪个商品,但是呢,将来营业员会具体的问。
02:28
你想要小米八白色的、黑色的,64G版本的还是128G版本的?因为不同的版本决定了这一款小米八真正的库存以及售价。有可能我们要白色128的,现在还没有货了,所以这就是我们说的s puu与SKU,那说它两个呢,就得引申出另外两个概念,一个叫规格参数,另外一个叫销售属性。举一个实际的例子来打开京东,我在这呢找到了一款iPhone X max手机,如果我们单独提出来iPhone XS Max,那么它是PU,那我们X X ma具有哪些特性,我们可以在这儿看,这有一个叫规格与包装,我们能看到它的入网型号、品牌,包括它的上市年月份,所有的XS Max手机都具有共同的这些特性,包括它的长宽、重量、CPU品牌、存储卡是否支持等等,这些特性都是属于s puu里边的,而且我们可以来切换一下,我现在呢想要用深空灰256G版本,那这一个具体的版本,那就是我们说的S。
03:40
Ku,那SKU与SKU之间的区别在哪呢?我们可以来看一下,我切一个金色64G版。我们看到它下边的规格、包装,这些参数呢,其实都是一模一样的,包括它的尺寸、重量,那唯一的区别,那就是我们选的这个颜色和存储量的区别,而我们选中的这个64G金色,这就是一个SKU,同一款商品iPhone XS Max,它所有的SKU都会共享我们XS Max这个SKU的所有特征,它的特征就是规格与包装,那我们把这个就可以称为基本属性,也叫规格与包装,只要同一个SPU,它旗下无论你切换什么版本,这一块的数据都是一样的,那我们把这一块的商品的属性,我们就叫基本属性,就叫规格与包装,而我们把这一块的能完全决定它售价与库存量的这个属性,我们就叫销售属性,我们使用了不同销售属性,比如银色256G版。
04:50
那呢,它是有货的,而且价格是这样子的,但是银色512级版它的价格就不一样的,包括它的存货状态有可能也是不一样的,所以整个分析起来,无论是选择某款商品的哪个SQ组合版本。
05:09
首先他们的这些基本属性,也就是规格与包装是一样的,包括他们的商品介绍,我们来往下翻来看这一块的商品介绍,他在这儿展示了一个图片,说什么超视网膜屏,在这说了一大堆。这一块的介绍跟我重新再切换一个版本的介绍,我们来点金色64G版,我们来看它的介绍,我们发现这些图片构造,包括这一块的图片完全都是一样的,以及它的规格与包装,所以一句话,商品介绍,规格、包装,也就是它的基本属性,这都是Su的特性,这就代表了这类商品XS mass,而我们到底要真正购买哪个是我们说的SKU决定SKU的这些属性我们叫啊叫做销售属性,每一个SKU他们的这一块的图片不一样,但是他们商品介绍都是完全一样的,而且更大的特点,我们这个iPhone X max是属于属于手机这个分类下的,手机分类下的所有手机产品,无论是iPhone还是荣耀来点开来,他们的这些基本属性呢,都有一些共通的,比如机身长度。
06:24
CPU品牌CPU型号GPU型号。那唯一不同的就是不同款商品不PU不同,他们的这些属性对应的值是不同的。比如我们来再来观察一下,我们现在再找一个iPhone手机来把它打开,我们跟荣耀进行对比,他们都属于手机分类下,来到他们的规格与包装,来到他们的规格与包装,我们看他们的这些属性呢,都分为这么几个部分,主体基本信息,主芯片、存储屏幕来看iPhone X主体基本信信息主芯片,存储屏幕,这都是这些属性的分组,只要是手机类下任何款商品都应该具有这些属性值,这些属性对应的值不一样,比如在基本信息里边,机身长度,荣耀的这个机身长度,它的这个值是这样子的,而XS ma它的值是这样子的。
07:21
包括它的机身重量,机身重量属性的这些名字都是一样的,那这一块呢,我们就称为属性名,而这是这个属性真正对应的值,包括属性名品牌对应的值是华为啊,我们这一块的属性名品牌对应的值就是苹果。那基于这种分析呢?我们总结出以下几点,首先,同一个SPU旗下的不同SKU产品,他们共享商品介绍、规格与包装。其次。我们这些属性,无论是我们说的规格与包装里边的这些属性,我们把它可以称为基本属性,还是决定我们售卖价格的这些颜色啦,版本这些属性。
08:05
我们把它称为销售属性,属性呢都是以三级分类组织起来的,只要是同一个手机类下的,他们在基本属性都是一样的,只是这些属性的值不一样,而且有些人呢,假设没有某个属性,那就不显示了,但属性名以及他的分组信息都是一样的,所以呢,我们这些属性啊是以三级分类组织起来的,而且呢,大家注意我们规格参数中有些属性是可以提供检索的,比如我们看一下CPU型号,就针对于这个属性来说,怎么提供检索呢?我们直接来到手机大分类下,我们在这儿呢,可以完全的来根据不同的检索条件来筛选手机,那其中检索条件里边呢,就有一个叫CPU型号,有不同型号,那我们这一块的型号里边呢,就有一个叫麒麟980,那么这一块的检索信息里边肯定就会有相应的麒麟980,来找一下麒麟980。
09:05
有些属性,我们这个分类下,所有手机这个CPU型号所可能的所有值都是需要提供检索的。包括它的分辨率,屏幕比例等等等等,那可能都在它的基本属性里边,分辨率那有些是可以提供检索的,其次我们说的这个规格参数,也就是我们称为的基本属性在这儿,规格与包装这些呢,他们是以分组为单位在这放着的,包括呢,属性的分组也是以三级分类组织起来的,只要同一分类下,我们都点这个手机类下,那这一块的分组清单信息都是一样的。只不过在录入有些商品的时候,可能他不需要这个分组,那我们就不录了,那我们在这儿不显示了,但是如果一旦要显示,大家都是主芯片分组的。那么主芯片组下拥有哪些属性都是确定的,只是每一个SPU属性对应的值是不一样的。再另外,属性的值是根据商品来决定的,SKU是来决定规格参数的值,SKU是来决定销售属性的值。SKU不同,它对应的销售属性,比如颜色,它对应的值就不同了。而且每一款真正的SKU,它都有一个唯一的编号,我们可以在京东这儿看到,当我选幻夜黑全网通的时候,它的编号是1万什么828,当我选魅海兰全网通的时候,它的编号是一万四幺六零,这是我们电商商品里边的两个基本概念。
10:40
那基于这些概念,我们数据库设计出来就是这样子的,比如我们这有一张表叫PM at tr,这叫属性表,属性表里面呢,有属性名、属性类型以及它所属的三级分类ID这几个关键字段,包括还有search type search type代表这个属性是否可以被检索,检索类型,那这张表呢,就对应我们。
11:05
这个里边的,比如我们有一个属性叫机身颜色,那么这张表里边就应该有一个属性名叫机身颜色,它如果是可供检索的,那么检索标志位就应该置为一。我们首先有一张属性表,第二个我们说属性呢,它是跟分组关联起来的,这个属性属于哪一组?我们这儿还有一个叫属性分组表,比如我们这个分组的ID是一,这个组名呢,我们就叫主体。这个组所属于哪个三级分类,那么手机类下我们就能查到手机类下所有的属性分组,但这个分组跟属性是怎么关联的?我们有一个中间表叫属性以及属性组的关联关系,我们有属性的ID和属性分组的ID,比如一号分组关联了二、3454个属性,那么就在这可能要显示一号分组,假设叫主体关联了一、二、三四这四个属性。
12:03
当这些属性到底它的值是什么,这要根据我们选择了哪个商品来的,所以呢,我们这又有一张表叫商品属性值表,比如呢,我有一款商品,这个商品呢,我们叫s puu的ID,它关联的这个属性的ID,以及这个属性对应的值,当s puu真正的信息在PU info里边,这有商品的名字,商品的描述,商品的品牌,商品所属的三级分类,以及商品是否发布的这些状态。那这个ID就代表了商品ID,比如我们这有一个商品iPhone Xr,那XR这个商品到底这些属性值应该什么什么样,我们就需要保存到product at tr value里边。比如SR商品的ID是一,它对应的一号属性它的值是什么,二号属性值是什么,三号属性只是什么?我们全部在这张表里保存着。
13:01
当这块保存的只是s puu的信息,那我们每一款商品,比如iPhone Xr也好,荣耀V20也好,它会对应不同的SKU,那这一块的数据在哪设计呢?来点开这个表,首先我们有一张表叫SKU,英否相当于SKU的详细信息,SKU的ID,比如我们荣耀V20,这个squ是一号的,它呢有四个独立的SQ,那么就应该存一、二、三、四四个SQ,这些SQ的详细信息可能都在这儿,比如它的标题副标题,那标题副标题那就在这儿,这是当前我们选中商品的标题副标题等等等等,还有我们SKU对应的图片,所以我们一个商品到底有多少款SKU存在了这里边S每一个SKU它可能有自己对应的这些图片,我选中了蓝色全网通,那它有这五六个图片,那全部存在SKU图片表中一号的Su。
14:01
有四五个图片一号,第一个图片一号,第二个图片一号,第三个图片我们都可以存在这儿,但是最关键的就是我们这款SKU,它的颜色是蓝色,版本是6128G。那这个信息怎么存,我们还是存在了,叫SQ销售属性指表里边,比如我们SQID1号,它是我们这个蓝色128G版的,那像这个一号SQ它的一号属性,假设一号属性叫颜色,那它的值就是蓝色,还有二号属性是版本,它是六加128,这是第一个SQ对应的两个销售属性,一号二号销售属性各自对应的值,那二号SQ对应的一号二号销售属性,属性名颜色,它可能值是黑色,版本值是八加256,在这里边呢,就保存了SQ与销销售属性值对应的关系,那整个的图示关系那就长这样,首先我们有一张三级分类表,我们之前做过,还有一个属性分组表,我们看到了这个属性分组,它里边呢,有一个字段维护了它所属于哪个三级分类,这样我们一进入手机类项,我们就知道它有哪些。
15:17
属性分组相当于我们这个po属于手机类下,那我们就知道有哪些手属性分组,我们就能查出来,而这个属性分组里边又有对应的很多属性,我们又会有一张表叫属性表。这个属性表跟分组的关系在它们的关联表里边存着,那就是这张表。Relation里边。分组的ID对应的属性ID,这样我们一进来,根据商品所处的分类,查出它对应的所有分组,分组里边到底有多少个属性,我们都能查出来,那这个SPU对应的属性值是什么,我们也可以查出来。我们在SPU的这个product at tr value6里边保存了每一个po ID对应的属性的对应的值,我们这块的图呢,就长这样。
16:08
我们专门有一个商品属性表。就是我们的这张表,这张表里边呢,有商品的ID,比如我们荣耀VHVR10,这是一个PU,它有两个属性,网络和像素,网络和像素各自对应的值,荣耀V20它是3000万和它这个网络支持345G3种网络,多个值呢可以用分号隔开,而我们这个商品啊,荣耀V20下边又下设了很多的SKU,每一种版本都是不同的SKU,售价又不一样,那我们呢就可以这样来做。我们专门在SKU销售属性指标里边保存了,比如一号商品荣耀V20,这都是一号商品荣耀V20,它有两个SKU,一号和二号,而一号这个SKU对应的三号属性,比如内存它是6G,对应的四号属性,容量是128G,而二号SKU对应的三号属性。
17:05
是4G,内存4G和四号属性是64G。我们数据库呢,就是这么来设计的,那下一节课呢,我先基于这种表的设计,我们先将每一个分类下到底拥有多少的属性与属性分组,可以让这个分类下的商品来进行使用,下节课先做出这么一个效果,我们选中某一个分类,可以给这个分类下添加一些属性分组,给分组里边再来添加一些属性,这样我们一进入手机分类下某一款商品,那么这一块的对应的属性就可以刷出来了。
我来说两句