http://www.cnblogs.com/winstonyan/archive/2011/12/17/b2c_research_product_sku_analyse_design.html
# 一、SKU及相关概念定义
在设计商品SKU之前,首先让我们熟悉一下SKU和相关的一些概念。
**# 什么是SKU:**
SKU=Stock Keeping Unit(库存量单位)
同一型号的商品,或者说是同一个产品项目(商品条形码是针对企业的产品
项目来进行定义的),因为产品与产品之间有某些属性不同,用以区别开这些
不同商品的属性即商品变异属性,又称作SKU属性,因为它决定了SKU
的绝对数量。
**# 参考说明**
百度上有一篇文章也有阐述,可以做关联阅读,我就不重复贴上了。
[百度SKU参考](http://wenku.baidu.com/view/9e8de10e6c85ec3a87c2c5c5.html)
**# 什么是SKU属性和选项**
比如某件衣服有多种颜色、多种尺码,这些属性会直接关联价格和库存的,
系统会根据该商品关联的SKU属性的某个组合生成SKU。
比如某个款式的衬衫,有XL/L/XXL三种大小,有红黄蓝三种颜色。
对应这里例子,尺码和颜色都是是SKU属性。
对应尺码的XL/L/XXL等,都是SKU属性选项。
【注】上述的属性不一定在任何时候都是SKU属性,看实际的商品情况和设置。
比如对于尺码,某种商品是均码的。那么就不需要创建尺码这个SKU属性了,
而是设置为普通属性,仅作为显示用。
**# 什么是商品SKU**
商品SKU实际上就是SKU,为了避免误解和SKU属性混淆,我用商品SKU来命名,
表示从属于商品的、实际销售和存储的子实体。
一个商品SKU,表示该商品关联的若干SKU属性的的属性值的某个组合所形成的
子实体。
如对应上面的例子,其中的一种组合 XL + 红色 就会形成一个商品SKU。然后,
我们可以在该实体上管理价格、库存、专门的图片等信息。
**# 什么是商品变异**
英文名:Product Variants
商品变异其实就是商品SKU,只不过在某些技术文章中这样定义了。即以“变异”
来表达商品SKU的生成。
**# 属性集**
[B2C电子商务系统研发——商品SKU分析和设计(一)](http://www.cnblogs.com/winstonyan/archive/2011/12/17/b2c_research_product_sku_analyse_design.html)
Attribute Set,用于管理各类扩展属性的集合,其中SKU属性也是在管理范畴之内。
商品通过关联属性集而获得该属性集设置好的SKU属性,然后才可以根据这些SKU属性
生成商品SKU。
属性集也成为产品类型。
常见的属性集有:服装、PC、家具、图书等。
**# 概念的统一**
虽然不同的研究人员有不同的命名和定义,但为了在本系列文章中不出现混淆,
我对概念做了以下统一定义:
1)SKU(或称商品SKU)指的是商品子实体。
2)商品和商品SKU是主次关系,一个商品包含若干个商品SKU子实体,商品SKU从属于商品。
3)SKU不是编码,每个SKU包含一个唯一编码,即SKU Code,用于管理。
4)商品本身也有一个编码,即Product Code,但不作为直接库存管理使用。
有时为了方便管理,会通过商品的Product Code作为前缀生成SKU Code。
# 二、SKU属性的管理
常见有几种情况:
1. 商品独立管理
即SKU属性从属于商品。
优点:基本上没有。
缺点:这种比较不靠谱,因为会导致工作量过大。虽然可以通过“复制”功能来稍稍
简化,但依然不会很理想。所以基本不会采用。
2. 商品独立关联
即SKU属性是公共的,每个商品根据自己的实际情况来关联若干个SKU属性,
然后选择若干选项生成商品SKU。
优点:灵活,设置好了若干SKU属性和相关选项后,由商品自行选择相关的组合。
缺点:太灵活了,容易出错。比如对于颜色这个SKU属性而言,由于是公共的,所以
会定义数十个,甚至更多,但是对于ipad而言,其实只需要2个即可。这种
管理方式,无法从源头控制商品添加时SKU属性和选项的范围。
3. 通过属性集管理
即SKU属性依附属性集存在,不存在可以从属于多个属性集的SKU属性。
优点:容易进行严格的管理,不易出错。比如同样是命名为“颜色”的SKU属性会存在多个
(属性ID/编码不同),但是对于ipad的只需要2个选项(黑、白),对于服装则会很多。
缺点:属性集管理的工作量会稍大,适合属性集不多的系统。
4. 通过属性集关联
即SKU属性是公共的,通过属性集关联。
优点:这种方式重用性不错,对于SKU选项较多的,会简化工作量。
缺点:由于SKU属性是公共的,所以会存在上面第2点的缺点。但我们也可以通过设置多个
同名、但编码不同的SKU属性,如多个“颜色”SKU属性,但是选项不同。
5. 创建独立的SKU属性集
即设计一个独立的SKU属性集的实体,关联或者直接管理SKU属性。
这种方式也是挺不错的。因为虽然各种商品类型之间产品特性会有较大的不同,但是SKU属性
却有可能差异不大。比如对于服装、ipad都存在通过颜色来区分SKU,但是ipad只需要2种选项
(以后也许微调为3~4种等),而服装则很多了。
# 三、我的选择
上面介绍了五种形式,我个人倾向第4和第5种,上一篇文章的ER图也改成了第4种的形式,比较符合
常见的思路。第5种也是不错的。可以在接下来的设计分析一下。
- 数据库
- CAP定理
- 关系模型
- 关系数据库
- NoSQL
- ODBC
- JDBC
- ODBC、JDBC和四种驱动类型
- mysql
- 安装与配置
- CentOS 7 安装 MySQL
- 优化
- 比较全面的MySQL优化参考
- 1、硬件层相关优化
- 1.1、CPU相关
- 1.2、磁盘I/O相关
- 2、系统层相关优化
- 2.1、文件系统层优化
- 2.2、其他内核参数优化
- 3、MySQL层相关优化
- 3.1、关于版本选择
- 3.2、关于最重要的参数选项调整建议
- 3.3、关于Schema设计规范及SQL使用建议
- 3.4、其他建议
- 后记
- Mysql设计与优化专题
- ER图,数据建模与数据字典
- 数据中设计中的范式与反范式
- 字段类型与合理的选择字段类型
- 表的垂直拆分和水平拆分
- 详解慢查询
- mysql的最佳索引攻略
- 高手详解SQL性能优化十条经验
- 优化SQL查询:如何写出高性能SQL语句
- MySQL索引原理及慢查询优化
- 数据库SQL优化大总结之 百万级数据库优化方案
- 数据库性能优化之SQL语句优化1
- 【重磅干货】看了此文,Oracle SQL优化文章不必再看!
- MySQL 对于千万级的大表要怎么优化?
- MySQL 数据库设计总结
- MYSQL性能优化的最佳20+条经验
- 数据操作
- 数据语句操作类型
- DCL
- 修改Mysql数据库名的5种方法
- DML
- 连接
- 连接2
- DDL
- 数据类型
- 字符集
- 表引擎
- 索引
- MySQL理解索引、添加索引的原则
- mysql建索引的几大原则
- 浅谈mysql的索引设计原则以及常见索引的区别
- 常用工具简介
- QA
- MySQL主机127.0.0.1与localhost区别总结
- 视图(view)
- 触发器
- 自定义函数和存储过程的使用
- 事务(transaction)
- 范式与反范式
- 常用函数
- MySQL 数据类型 详解
- Mysql数据库常用分库和分表方式
- 隔离级别
- 五分钟搞清楚MySQL事务隔离级别
- mysql隔离级别及事务传播
- 事务隔离级别和脏读的快速入门
- 数据库引擎中的隔离级别
- 事务隔离级别
- Innodb中的事务隔离级别和锁的关系
- MySQL 四种事务隔离级的说明
- Innodb锁机制:Next-Key Lock 浅谈
- SQL函数和存储过程的区别
- mongo
- MongoDB设置访问权限、设置用户
- redis
- ORM
- mybatis
- $ vs #
- mybatis深入理解(一)之 # 与 $ 区别以及 sql 预编译
- 电商设计
- B2C电子商务系统研发——概述篇
- B2C电子商务系统研发——商品数据模型设计
- B2C电子商务系统研发——商品模块E-R图建模
- B2C电子商务系统研发——商品SKU分析和设计(一)
- B2C电子商务系统研发——商品SKU分析和设计(二)
- 数据库命名规范--通用