B2C网站产品分类属性设计方法

一:为什么B2C网站要做分类多属性?

1、
B2C 网站架构的可维护性以及分类搜索
在一些比较大型的B2C网站,会发现不同的类目下面都会有一些不同的选项
例如进入了红酒柜类目,我可以选择是 多少瓶的 ,电子的还是压缩机的 ,价格范围等
如果进入了搅拌机的类目,我可以选择多少转的,功率,产量多少等

但如果是传统的属性表结构的话,将是这样储存
产品表:
名称,产品编码,型号,瓶数,压缩机类型,价格,转速,功率,产量

这样做的话  每一个产品都记录着这么多的信息,而且很多信息都不是自己想要的
例如红酒柜的时候不需要转速的数据,搅拌机不需要压缩机类型的数据
则存在十分多的数据冗余,更可怕的是,我们的产品分类几百种,如果都按传统的设计方式去实现的话,则难以 管理
而且在前台设计的时候也不好做,十分每一个分类的都要有一个专门的class ?明显这种设计不大科学
系统 的维护性来说是不可取的
运费

2、数据对比的实现:

在太平洋电脑网里面有个很好的功能,就是导购对比功能,如图

在我们圣托的产品不同于凡客,和京东
我们更多的是属于非标准的产品,还不属于家喻户晓的大 品牌

共10多万个产品,且种类繁多
那如何才能让顾客快速的选择出符合自己的产品呢?
我们也许可以定下一些行业标准,例如什么参数的产品质量更好,更合适哪类人群使用···
这里如果有一个如太平洋的对比功能就好很多了

二、如何实现分类多属性
1、数据结构:
我们知道,我们的产品可以进行分类,从面向对象的角度来说,我们的子类应该是继承于父类的,例如男人继承于人类所以,男人应该拥有人类所有的属性。
so:
分类表中可以添加一个字段,记录在这分类中的属性名,用JSON序列化储存到表字段中,子级分类亦然。
如{'转速' ,'刀片工艺'}
因为 json可以转换为array,所以我们的属性集将成为array的格式,最终所属类目的产品的属性则为所属类目以及其所有父级分类的并集。
如果从数据结构来说,我们可能会考虑得更严谨一些,不是转化为array而是一个tree里面
并在产品表中添加一个命名为ex_attr的字段名,对应属性集中的每一个属性,并以json的格式进行储存入表中。
例如{'转速':'10000/m','刀片工艺':'0.5mm'}
Jul 15 jquery获取和设置select下拉框的值


当然如果我们的类目想更多的功能,显示的更独特性的话 我们的json格式就可以储存为
[{"type":"int","display_style":"bar","title":"转速"},{"type":"string","display_style":"string","title":"刀片工艺"}]
json可以直接转化为tree 和 tree_item

你可能感兴趣的:(B2C)