专栏首页企鹅号快讯ODOO优化层级关系查询效率的方法

ODOO优化层级关系查询效率的方法

《Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下

在上面的代码中。

使用字段来关联上层记录。

使用这个属性来开启分层搜索功能.

使用和字段来进行记录所属层级,当时看书的时候对这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录的效率。

简单原理

查询分层结构记录时,一般的想到的方法是从根目录开始,对每个子目录进行递归查询.然后才能得出具体的分层结构。(如递归查询文件夹文件)

Odoo中为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。

画个图来理解下

可以看到,图中的B属于A的,清楚的表示了A,B的层级从属关系。

Odoo 应用

我们用Odoo11的product模块作为演示 在文件中.看到产品目录(ProductCategory类.15行起)的代码

在Odoo11的演示数据中,产品的目录结构一共有6个

我们查询下数据库中的数据,获取每个产品目录各自的数值

注:这里可以发现,上层目录

添加数值

通过上面的展示,可以清楚的看到所有产品目录各自的包含结构。根目录为All,然后依次为Internal,Saleable. Saleable下面又有3个子目录…

假设要找到All产品目录下的所有产品目录

只需要一条查询语句即可找到所有子目录.无须遍历. 要找Saleable下的所有子目录即可使用 作为条件

结论:

在Odoo的实际使用中,发现使用parent存储特性的模块主要涉及account, product, stock_location. 因为这个优化对查询层级结构效率有良好效果。 凡事皆有两面,这种存储特性会在数据库中添加多余的字段。其实是以空间换时间。

参考

https://stackoverflow.com/questions/11861436/parent-left-and-parent-right-in-openerp

本文来自企鹅号 - Odoo中文媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 二帮主:央行数字货币的崛起,会给比特币带来什么影响

    1 输入标题 ? 今天我们来聊一聊最近风口上的央行数字货币,各国央妈都来势汹汹,我国数字货币也已经开启测试,就差临门一脚了,正值比特币的价格也一直停顿不前,这一...

    企鹅号小编
  • 如何与深度学习服务器优雅的交互?

    有没有想到小夕今天会发文章呢?( ̄∇ ̄)有木有超级想小夕呢( ̄∇ ̄) 小夕在前面写了一堆纯理论和半理论的文章,不要怕,这次来一篇纯工程的tricks集合! 如果...

    企鹅号小编
  • 学web前端开发写给新手的建议,超实用!

    如今我们使用的互联网,客户端与服务器端的交互无时无刻不在发生。比如我们在浏览器打开网页,浏览器就是客户端,将网页数据发过来的也就是服务器。其实服务器,并没有什么...

    企鹅号小编
  • 《青花瓷》 -Tataufo 版

    每个人都来自不同的星球,飘荡在自己熟悉的宇宙开始探索未知的旅行,也许你会成为最亮的星星平凡经历也能产生交集,寻常故事也会碰出新奇互相吸引的,是你独有的特质和魅力...

    半吊子全栈工匠
  • 五个解决方案让MongoDB拥有RDBMS的鲁棒性事务

    【编者按】在分布式存储解决方案中谈事务一直是件很痛苦的事情,而事务也成了大部分NoSQL解决方案短板所在。近日,MongoDB公司的Antoine Girbal...

    CSDN技术头条
  • Android Studio集成Genymotion

    Android Studio集成Genymotion比在Eclipse中集成简单多了。主要以下几个步骤: 1、官网先下载Genymotion:http://...

    xiangzhihong
  • 一文看尽科大讯飞年度发布会:医疗,是这家A股AI公司的新赛道

    李根 假装发自 凹非寺 量子位 报道 | 公众号 QbitAI 一年一度,科大讯飞总会通过年终发布会,披露一年成绩,发布最新战略。 与去往年不同,自Alpha...

    量子位
  • 2014年十大科学突破:机器人菲莱登陆彗星荣登榜首

    美国《科学》杂志18日公布了其评出的2014年十大科学突破,这是对全球科学研究每年一度的年终盘点,人造探测器首次登陆彗星被选为本年度最重要的科学突破。欧洲“罗塞...

    机器人网
  • Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

    最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样:

    JackJiang
  • 学界 | UC伯克利提出小批量MH测试:令MCMC方法在自编码器中更强劲

    选自BAIR 机器之心经授权编译 参与:路雪、蒋思源 近日伯克利大学官方博客发文提出小批量 MH(Minibatch Metropolis-Hastings),...

    机器之心

扫码关注云+社区

领取腾讯云代金券