百度搜索 sku算法,sku组合查询
https://www.imooc.com/article/15690

什么是SKU:
最小存货单位,sku是描述最小单位,如具体的手机型号,内存,颜色等就可以确立最终要支付的那款手机。

Sku 多维属性状态判断算法
http://blog.jobbole.com/109138/

sku组合查询算法探索
http://git.shepherdwind.com/sku-search-algorithm.html

淘宝SKU组合查询算法实现
https://www.cnblogs.com/purediy/archive/2012/12/02/2798454.html


淘宝后台sku算法:



看过的sku算法,但是该算法复杂度很高,需要优化:
http://blog.csdn.net/csdn924618338/article/details/51455595
大致步骤:
1 大致意思:根据已选的属性,判断剩余未选的属性是否存在sku_list中,不存在设置不可选,上下判断。
在所有库存组合(sku_list)中筛选出包含选中属性值(10,21)的组合(10|21|30|40), 未选的属性(attr3、attr4)中的所有属性值若不在这个组合中就设置为block

2 判断已选属性的属性值和其它已选属性的属性值是否是有效组合。左右判断、
已选属性 (attr1,attr2) 中任意一个属性(attr1)的属性值(10,11), 若不能和其他属性(attr2)中的选中属性值(21) 组合成有效(有库存)组合, 则设置该属性(11)为block



sku数据库设计

http://blog.csdn.net/qiaqia609/article/details/53583166

http://wbloc.com/article-560.html
# 商品属性名
sku算法 - 图1
CREATE TABLE item_attr_key (
attr_key_id INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
# 主键, 自增 ID
item_id INT (10) UNSIGNED NOT NULL,
# 关联到商品
attr_name VARCHAR (50) NOT NULL,
# 属性名称
PRIMARY KEY (attr_key_id)
);

# 商品属性值
sku算法 - 图2
CREATE TABLE item_attr_val (
attr_key_id INT (10) UNSIGNED NULL DEFAULT NULL,
# 对应 item_attr_key 表的 attr_key_id, 完成一对多关联
item_id INT (10) UNSIGNED NULL DEFAULT NULL,
# 关联到商品
symbol INT (10) NULL DEFAULT NULL,
# 属性编码
attr_value VARCHAR (255) NULL DEFAULT NULL # 属性值
);

# 商品库存量单位表
sku算法 - 图3
CREATE TABLE item_sku (
sku_id INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
# 主键, 自增 ID
item_id INT (10) UNSIGNED NOT NULL DEFAULT ‘0’,
# 关联到商品
attr_symbol_path VARCHAR (255) NOT NULL,
# 属性组合出的规格路径
price DOUBLE (15, 2) NOT NULL DEFAULT ‘0.00’,
# 价格
freight DOUBLE (15, 2) NULL DEFAULT ‘0.00’,
# 运费
stock INT (10) UNSIGNED NOT NULL DEFAULT ‘0’,
# 库存数量
PRIMARY KEY (sku_id)
);


非小型电子商务系统设计经验分享
http://www.cnblogs.com/mmmjiang13/archive/2012/07/05/2575538.html