openerp中的左父级和右父级
什么是左家长和右家长 在Openerp中它是如何工作的 谢谢这些是的字段。在SQL中管理具有未绑定深度的分层数据结构。本文用SQL中的示例详细解释了该模型openerp中的左父级和右父级,openerp,Openerp,什么是左家长和右家长 在Openerp中它是如何工作的 谢谢这些是的字段。在SQL中管理具有未绑定深度的分层数据结构。本文用SQL中的示例详细解释了该模型 OpenERP使用嵌套集模型来管理诸如科目表和仓库位置之类的树parent\u left和parent\u right列相当于上述文章中的right和left列。正如拉斐尔·科莱在: parent_left和parent_right是与相关的特殊字段 父项id字段。这些字段的用途是进行查询 在层次结构中高效地执行:父级_向左和向右 对,您可以
OpenERP使用嵌套集模型来管理诸如科目表和仓库位置之类的树
parent\u left
和parent\u right
列相当于上述文章中的right
和left
列。正如拉斐尔·科莱在:
parent_left和parent_right是与相关的特殊字段
父项id字段。这些字段的用途是进行查询
在层次结构中高效地执行:父级_向左和向右
对,您可以检索节点的所有子代,而无需
进行递归查询
考虑层次结构中的两个节点A和B。A和B可以是搭档
例如,类别。它们的整数字段左和右
父母权利包括:
B is a descendant of A in the hierarchy (defined by parent_id)
当且仅当
A.parent_left < B.parent_left and
A.parent_left < B.parent_right and
B.parent_left < A.parent_right and
B.parent_right < A.parent_right
A.parent\u left
所以,假设你有六个合作伙伴类别,如下所示。你可以
通过遍历树,将父_分配给左侧,将父_分配给右侧。结果
在每个节点旁边的括号中显示。请注意,此处的值
是最优的;实际上,你可以在数字上留下空白
- 客户(1、10)
- 消费者(2,3)
- 合作伙伴(4、9)
- 基本合作伙伴(5、6)
- 黄金合伙人(7,8)
- 供应商(11、12)
SELECT id FROM partner_category
WHERE parent_left > 1 AND parent_left < 10
从合作伙伴类别中选择id
其中,左父项>1,左父项<10
最后一点是,可以更新parent_left和parent_right
不需要遍历整个层次结构。删除节点不会导致错误
需要任何改变。要添加节点,可以调整左侧的父节点
还有两个更新查询:一个是“留出一些空间”
在新节点祖先的左父节点和右父节点之间,
一个用于将新节点的父节点左移和父节点右移
跟随兄弟姐妹和他们的后代。所以你离开了
可以有效地维护家长权
答案中的文章链接包含所有细节,并附有非常清晰的示例和图表。虽然标题上写着“在MySQL中”,但这些信息与任何特定的SQL数据库都没有关系。你能看到这样的评论吗“感谢Raphael Collet(OpenERP)的出色解释。”我认为这是对的。在发表评论之前,请阅读完整的答案。你确实需要更明确一点,而不仅仅是感谢在你的答案中发布你复制的所有内容的人。我对答案进行了编辑,以说明您应该如何引用来自其他来源的材料,以便清楚地知道应该在哪里获得信贷。那里的材料是在抄送署名许可下的,所以你必须明确署名。感谢你的评论Brad Larson。我会在将来记住这些事情。请参考下面给出的链接,因为它有一个关于左家长和右家长的很好的解释