`
LucasLee
  • 浏览: 205980 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

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

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

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

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


你的问题很多,分别回答。
1.无限分类。树形结构,一般可以认为分类变化的频度很低,所以比较适合于损失插入修改性能以提高查询性能。
树形结构的查询,一般最关心和最区别于普通字典数据的地方就是查询子树问题,在Oracle里对应hierarchical query,即使用connect by语句的递归查询。子树举例说:生物分类中,给出所有的鸟类。
一般的树形结构在表里的物理存储方式有两大类:
1.链表方式。
  有各种变形,典型的如,一条记录有唯一id,还有parentId保存父节点的ID。查询子树时需要用SQL递归查询,需要多条SQL。
2.ID即是节点在树中的路径。
  比如生物id为001,哺乳动物则为001001,鸟类为001002,前三位是父节点的id,后三位是在本级中节点的ID。依此类推。
  这种方案有每级节点数量的限制,因此有其他方案来弥补,比如另设一个字段保存上级节点的ID,这样本级节点的长度实际上是算出来的,而不是固定的。但这些方案的共同点就是,对子树问题,都采取id like '父节点%'的方式,只需一句SQL,但是like的效率并不算很高。
3.Nested Sets方式。
  用两个字段保存树形结构关系,left数和right数,规则是:子的left>父的left,子的right<父的right。这种算法专门针对子树问题优化,根据上述规则,它只需要where left>currentNode.left and right<currentNode.right即可。因为left,right都是数字,所以可以利用索引,可以想见,查询的速度非常快,比用Oracle 的connect by实现内部递归的方式更快。
  具体参考:http://www.developersdex.com/gurus/articles/112.asp
 
 
分享到:
评论

相关推荐

    C语言算法精华

    Re: 伪随机数的生成算法? anya 计算并输出表达式结果 anya 计算并输出表达式结果2 anya 递归与栈溢出 anya Re: Excel 规划求解问题,求助,请教!! anya Re: anya:请教一个问题 anya Re: 如何给汉字分界? ...

    小学三年级六年级英语学习主要知识点[2]-.pdf

    小学阶段的英语学习是英语基础打牢的关键时期,特别是三年级到六年级,孩子们在这个阶段需要掌握一系列的基础...通过这些基本句型的学习,孩子们能够建立起初步的英语交流能力,为未来更深入的英语学习打下坚实的基础。

    你好吗-我很好。精选.doc

    这些知识点覆盖了语言学习的基础部分,旨在帮助学生建立起基本的语言沟通能力,同时也适用于初学者或作为复习材料使用。通过这些练习,学生可以提升听力、口语、阅读和写作技巧,并逐渐熟悉日常生活中的基本对话场景...

    五年级下册英语重点句型归纳精选.doc

    这些重点句型涵盖了日常生活、时间、日期、季节、职业、活动、电话交谈、动物观察等多个场景,通过反复练习和应用,可以帮助五年级的学生提高英语表达能力,为更复杂的英语学习打下坚实的基础。

    Python正则实例入门:《Python re(gex)?》随书代码

    【Python正则实例入门:《Python re(gex)?》随书代码】’py_regular_expressions - Learn Python Regular Expressions step by step from beginner to advanced levels' by Sundeep Agarwal

    USB2.0的EMI和ESD设计

    "USB2.0的EMI和ESD设计" 在高速数据传输的USB接口...USB2.0的EMI和ESD设计是一个复杂的问题,需要从电路设计和PCB设计两个方面进行分析和解决。只有通过合理的电路设计和PCB设计,才能确保USB信号的传输质量和可靠性。

    AE色彩匹配插件RevisionFXREMatchv2.0.1Mac苹果电脑版(附注册码)

    REVisionFX RE:Match for Mac是一款适用于ae和pr的色彩匹配插件,re:match mac 可以匹配不同镜头之间的色彩,曝光,白平衡,局部色彩匹配等,当你用不同摄像机拍了同一个场景,那么re:match这款插件可以很好的来匹配...

    Re:CREATORS OP2.ass

    re:creators op的k值文件

    小学英语总复习_常用句子.doc

    "等,这些是英语中最基本的问候方式,帮助孩子们建立社交互动的基础。 2. 时间问候:"Good morning/afternoon/evening",用于不同时间段的问候,培养孩子们的时间观念。 3. 道别语:"Goodbye, Good night",表示结束...

    小学英语特殊问句.doc

    ",例如"They’re tomatoes."和"They’re horses."。 19. **归属问题**:"Whose coat is this?",答案"It’s mine.";"Whose plants are those?",答复"They are my father’s."。 20. **评价物品**:"How do you ...

    新版PEP人教版三至六年级常用表达法.doc

    " 回应:"You’re welcome." 6. Unit 6 Happy birthday! - 选择物品:"This one, please." 和 "Sure." - 数量询问:"How many plates?" 回答:"Two." - 生日祝福:"Happy birthday!" 回应:"Thank you!" - 年龄...

    回复:零高清壁纸新标签主题「Re:Zero HD Wallpapers New Tab Theme」-crx插件

    在每个新标签中获取Re:Zero的随机高清壁纸。这个主题是为Re:Zero粉丝制作的。玩的开心! REZERO ANIME NEW TAB-由FreeAddon提供安装我的Re:Zero New Tab主题,每次您打开一个新标签时,即可享受ReZero动漫的各种...

    RE:DOM开发工具「RE:DOM dev tools」-crx插件

    RE:DOM dev工具用于Chrome。 RE:适用于Chrome的DOM开发工具来源:https://github.com/pakastin/redom-devtools 支持语言:English

    人教版七年级英语上册件PPT课件.pptx

    - They’re on/under/in…:它们在……上/下/里。 4. 寻求帮助的句型: - Could you bring some school things to school for me?:你能帮我带些学习用品到学校吗? 5. 句子结构与问答: - Where is my ...

    VisualOps赵鹏:re:Invent PaaS

    该文档来自VisualOps创始人赵鹏在7月13日Docker Meetup北京的活动,VisualOps是一家专注于企业级白盒PaaS以及Docker集成的公司。赵鹏的演讲主题是“VisualOps–re:Invent PaaS”。

    仁爱版英语七年级上下册(全册)短语汇总.doc

    - That’s OK / That’s all right / You’re welcome / Not at all:不用谢 6. 年龄与联系方式: - …… years old:……岁 - telephone number:电话号码 - QQ number:QQ号码 - ID number:身份证 7. 相同...

    仁爱英语七年级上册重点句汇总.pdf

    )/ They're Maria and Jane.(他们是一玛丽亚和简)。 8. 询问电话号码:What's your telephone number?(你的电话号码是什么?)/ My telephone number is...(我的电话号码是...)。 9. 表达感谢和回应:Thank ...

    小学英语基本句型.docx

    1. **人称代词**:I am, She's, We're, They're 用于表示“我是”,“她是”,“我们是”和“他们是”。例如,I am Tom. (我是汤姆)。 2. **指示代词与介绍**:This is 用于介绍人或物,如"This is Tom" (这是汤姆)...

    thisismysisterA.ppt

    A: They're my grandparents.(他们是我的祖父母) 通过这个内容的学习,学生可以掌握基本的家庭成员词汇,以及如何在日常对话中用英语介绍他人和询问身份,这对于提高英语听说能力是非常有帮助的。同时,熟悉这些...

Global site tag (gtag.js) - Google Analytics