读书人

复杂商品分类的表怎么建立

发布时间: 2012-09-01 09:33:02 作者: rapoo

复杂商品分类的表如何建立?
复杂商品的分类,类似淘宝的分类
1.每类商品有无限级分类
2.每个商品可能会有交叉分类
3.每类商品的扩展属性不一样
比如:
夹克的扩展属性为
款式: 拉链夹克 风格: 休闲 品牌: other/其它 适合季节: 春秋 尺码: M L 颜色: 其它颜色 质地: 纯棉
主板的扩展属性为
品牌: 微星/MSI 类型: Socket478 芯片组: Intel 845 平台类型: Intel平台 宝贝成色: 8成新

这些扩展属性都会动态的变化

那么问题来了:
1.全文搜索如何合理建立?
2.可能后台扩展属性表是否需要动态建立?
3.如果单件商品属于交叉分类的话,查询结果记录重复是否需要?
4.高效的无限级分类算法大家可否指点一二,这个困惑了我很久了?

不求完整解决,给个思路也成

注意我提的思路,Oracle是一种RDB产品,RDBMS,但它具备xml db特性。现在还没有一种单纯的xml db成为主流应用。所以只能推荐一种RDBMS了。至于关联,楼主给定的场景中数据肯定是存在关联的,不管是不是用RDB存储并在table间建立relation 21 楼 nihongye 2006-10-13
扩展属性问题:
从存储角度看,简单的方式是用一个字段文本,格式可以是xml或是自定义的可解析结构。
全文检索:
所有信息生成一个文本,对这个文本进行索引就好了。
交叉分类问题:
用中间表维护many-to-many的关系
无限分级:
用一个parentId表示父就好了 22 楼 together 2006-10-16 同意nihongye的说法,我们现在也是这样实现的。
定义了一个abstract的TreeClass,实现了父节点、子节点的遍历、上溯下溯、相互的关联关系等。

现在系统 中用到树形结构的地方主要有:组织机构分类、商品分类、国内地区分类、系统菜单、BBS主贴回贴等。

效果还不错。有时间我把实现方法和效果整理一下。 23 楼 zww80216 2006-10-17 扩展属性我现在是这么建立的
商品表:
商品ID
商品类型ID
商品名称

商品类型表:
商品类型ID
商品类型名称:如书籍,服装,主板等
商品类型属性表: 与商品的类型为1:n的关系
商品属性ID
商品类型ID
属性名称 如款式、风格等
属性选项 如果属性标志不为0 ,则以|分割开多个选项
属性标志 0:为文本框,1为下拉框,2为多选框


商品扩展属性表:与商品为1:n的关系。
商品ID
商品属性ID 比如款式的商品属性ID
商品属性值 比如款式为拉链夹克


大家再给点建议


关于无限级分类nested set确实是比较好的算法,但是需要存储过程以及视图支持,总归有点不爽。当然xml也是一种解决方案
全文检索并不麻烦,只要好好看文档
交叉分类其实就是一个M:N的关系,提问的时候可能脑袋里边打结了,郁闷

读书人网 >其他数据库

热点推荐