zoukankan      html  css  js  c++  java
  • The parent_left and parent_right on OpenERP

    parent_left parent_right parent_id字段都涉及到特殊领域。这些字段的目的是让在层次结构中的查询,有效地执行:与parent_left parent_right,您可以检索所有后代节点而不做递归查询。

    考虑两个节点层次结构中的A和B。 A和B可以是合作伙伴的类别,例如。他们的的整数字段parent_left parent_right是这样的:

            B是一个层次结构中的A后裔(由PARENT_ID定义)

    当且仅当

            A.parent_left<B.parent_left,B.parent_right B.parent_left B.parent_right<A.parent_right

    所以,想象一下,你有以下六个合作伙伴类别喜欢。您可以指定parent_left和parent_right的遍历树。其结果是显示在每个节点旁括号。需要注意的是那里的值是最优的,在实践中,你可以留下的空白的数字。
      - 客户(1,10)
          - 消费者(2,3)
          - 伙伴(4,9)
             - 基本伙伴(5,6)
             - 金牌合作伙伴(7,8)
      - 供应商(11,12)

    您可以检索所有子客户与一个单独的SQL查询。请注意,值1和10是parent_left和parent_right顾客,它们可以检索查询本身的一部分。

            SELECT ID从partner_category的
            WHERE parent_left>1 parent_left<10

    最后一句话是可以更新parent_left parent_right,,无需遍历整个层次。移除一个节点,不需要任何改变。为了增加一个节点,你可以适应parent_left和parent_right2 UPDATE查询:1,以“使一些空间”之间的parent_left和parent_right节点的长辈,和一个以转移了所有的节点“在正确的parent_left parent_right “新的位置。所以parent_left parent_right可以有效地保持。

  • 相关阅读:
    “键鼠耕耘,IT家园”,博客园2010T恤正式发布
    解决jQuery冲突问题
    上周热点回顾(5.316.6)
    博客园电子期刊2010年5月刊发布啦
    上周热点回顾(6.76.13)
    Chrome/5.0.375.70 处理 <pre></pre> 的 Bug
    [转]C# MemoryStream和BinaryFormatter
    [转]Android adb不是内部或外部命令 问题解决
    [转]HttpWebRequest解析 作用 介绍
    财富中文网 2010年世界500强排行榜(企业名单)
  • 原文地址:https://www.cnblogs.com/alangwansui/p/3040227.html
Copyright © 2011-2022 走看看