论坛首页 综合技术论坛

复杂商品分类的表如何建立?

浏览 31677 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-10  
复杂商品的分类,类似淘宝的分类
1.每类商品有无限级分类
2.每个商品可能会有交叉分类
3.每类商品的扩展属性不一样
比如:
夹克的扩展属性为
款式: 拉链夹克 风格: 休闲 品牌: other/其它 适合季节: 春秋 尺码: M L 颜色: 其它颜色 质地: 纯棉
主板的扩展属性为
品牌: 微星/MSI 类型: Socket478 芯片组: Intel 845 平台类型: Intel平台 宝贝成色: 8成新

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

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

不求完整解决,给个思路也成
   发表时间:2006-10-11  
基于一点:
商品表是基础表或维度表,不能允许“动态变化”。

1.每类商品有无限级分类
>>不需要一劳永逸的解决,有新分类、子类根据需要可建新表。
2.每个商品可能会有交叉分类
>>普通问题,没甚特殊。
3.每类商品的扩展属性不一样
>>扩展属性单独建子表,大不了几百个子表(实际很难有这么多子表),比硬揉在一起看着恶心好。

1.全文搜索如何合理建立?
>> 也没啥特殊。
2.可能后台扩展属性表是否需要动态建立?
>>不需要,最好不要。
3.如果单件商品属于交叉分类的话,查询结果记录重复是否需要?
>>随你。
4.高效的无限级分类算法大家可否指点一二,这个困惑了我很久了?
>>说道底困扰你的就是“无限级分类算法”,干嘛非要“算法无限级”,DBA就能保证无限级。

如果更自动化一点,这样的情况可在程序中结合一组配置文件,起到这样的作用:
定义系统中的相关表,表的DDL语句,应用初始化的时候检测表是否存在,如不存在则创建之,这样需要新表时就可以只修改配置文件。

其它搜索等需要操作表的功能,也可用配置文件如法炮制。

另外,除了表,还可用视图可以分担职责,这样减轻表设计的压力。
0 请登录后投票
   发表时间:2006-10-11  
zww80216 写道
复杂商品的分类,类似淘宝的分类
1.每类商品有无限级分类
2.每个商品可能会有交叉分类
3.每类商品的扩展属性不一样
比如:
夹克的扩展属性为
款式: 拉链夹克 风格: 休闲 品牌: other/其它 适合季节: 春秋 尺码: M L 颜色: 其它颜色 质地: 纯棉
主板的扩展属性为
品牌: 微星/MSI 类型: Socket478 芯片组: Intel 845 平台类型: Intel平台 宝贝成色: 8成新

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

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

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


每个商品都是一个xml文件 每个xml文件有一个ID 每个xml文件可以采用这样的结构
<xml>
<名称/>
<属性/>
<属性/>
......
</xml>

当检索商品的时候 比如用Socket478芯片组检索 就检索出所有含有Socket478芯片组属性节点的xml文件. 用一个xql语句就可以搞定. 返回的结果是xml文件 可以用xsl进行处理 然后用css显示
0 请登录后投票
   发表时间:2006-10-12  

这类问题(无限级别分类,可以交叉分类)很难。
正是现代 tag,分类时代的热点问题。我也考虑调查了很久。
如果解决得好,就可以被收购了。

xml 解决起来确实比 relation table 容易一些。xml全文检索也比较容易做。
我想,winterwolf会跳出来,终于等到了。:D

不过,xml也有一些限制。如果能有一种专门描述这类问题的数据结构就好了。
我想到过几种数据结构。不过都没有想透。
Multiple Key Hashmap。多维数组。等。

0 请登录后投票
   发表时间:2006-10-12  
xml确实是一种解决的办法,tianxinet的子表方法有点繁琐了,扩展属性有很多表也带来了维护的困难性了。。如果像淘宝的商品分类那样的话,你的子表数量是很惊人的。。。。
继续关注中
0 请登录后投票
   发表时间:2006-10-12  
buaawhl 写道

这类问题(无限级别分类,可以交叉分类)很难。
正是现代 tag,分类时代的热点问题。我也考虑调查了很久。
如果解决得好,就可以被收购了。

xml 解决起来确实比 relation table 容易一些。xml全文检索也比较容易做。
我想,winterwolf会跳出来,终于等到了。:D

不过,xml也有一些限制。如果能有一种专门描述这类问题的数据结构就好了。
我想到过几种数据结构。不过都没有想透。
Multiple Key Hashmap。多维数组。等。



xml没有什么限制 上面的方案只是为了说明问题 具体应用具体分析. 
0 请登录后投票
   发表时间:2006-10-12  
XML是一个树形结构,不能自然地表示图。
如果一个Node属于多个分类(是属于这个分类,而不是拥有这个属性)。就不容易表达了。

这方面,内存对象数据库有一定优势。
0 请登录后投票
   发表时间:2006-10-12  
zww80216 写道
xml确实是一种解决的办法,tianxinet的子表方法有点繁琐了,扩展属性有很多表也带来了维护的困难性了。。如果像淘宝的商品分类那样的话,你的子表数量是很惊人的。。。。
继续关注中


淘宝网的搜索? 那个和分类没关系吧?

好像只是对关键字段进行文字匹配 然后返回记录
0 请登录后投票
   发表时间:2006-10-12  
buaawhl 写道
XML是一个树形结构,不能自然地表示图。
如果一个Node属于多个分类(是属于这个分类,而不是拥有这个属性)。就不容易表达了。

这方面,内存对象数据库有一定优势。


噢其实也是可以的. 任何节点都可以有子节点 子节点可以记录任何信息 不限于分类和属性. 
0 请登录后投票
   发表时间:2006-10-12  
winterwolf 写道
buaawhl 写道
XML是一个树形结构,不能自然地表示图。
如果一个Node属于多个分类(是属于这个分类,而不是拥有这个属性)。就不容易表达了。

这方面,内存对象数据库有一定优势。


噢其实也是可以的. 任何节点都可以有子节点 子节点可以记录任何信息 不限于分类和属性. 


是可以记录一个ID。这个ID可以找到对应Node。
不过,这个就和 Relational Table 的做法一样了。Relational Table 也可以这么表达 tree / graph.

只是说,这种做法不是那么直观和直接。

XML 对于 Relational Table 的优势,就是可以直接嵌入复合属性数据。在表达Graph方面,这个优势就不明显了。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics