首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与django-mptt相比,django树胡子有什么优势?

与django-mptt相比,django树胡子有什么优势?
EN

Stack Overflow用户
提问于 2015-10-20 11:58:21
回答 3查看 4.6K关注 0票数 11

有两个著名的Django包用于创建树结构:django-treebearddjango-mptt。最近,Django CMS开始使用Djang-Tree须代替django-mptt。摇尾式CMS也在使用django-Tree胡子。

是什么让django-Tree须成为比django-mptt更好的选择?

EN

回答 3

Stack Overflow用户

发布于 2016-05-22 13:31:22

主要区别在于SQL树实现的选择。

django-mptt使用嵌套集,用于读取速度快,写入速度慢。

树胡子提供嵌套集,以及邻接列表(快速写入、慢读)和物化路径(快速读取、挑剔写入)。

还有其他的不同之处。django-mptt有一个更好的API和更好的文档。

票数 15
EN

Stack Overflow用户

发布于 2021-05-14 21:11:29

最重要的是,django-mptt显然没有维护:

https://github.com/django-mptt/django-mptt#this-project-is-currently-unmaintained

因此,此时,使用django-mptt会带来很大的风险,您将无法使用其他包的当前版本(由django-mptt依赖),并最终会遇到问题,需要切换到其他包,如django-treebeard

供Postgres用户使用的附带说明

顺便说一句,对于Postgres用户来说,除了mptt之外还有另一个有趣的替代方案:ltree (https://www.postgresql.org/docs/current/ltree.html)。

目前(在我编写这篇文章时),还没有用于将ltree与Django集成的维护包。然而,django-treebeard在添加ltree支持方面有一个未解决的问题:https://github.com/django-treebeard/django-treebeard/issues/170

同时,在没有包的情况下很容易实现。下面是我找到的一个演示:https://github.com/peopledoc/django-ltree-demo。我可以确认这个演示仍然运行良好(即使代码是几年前的)。

票数 4
EN

Stack Overflow用户

发布于 2020-07-13 11:36:12

您可以通过树胡子获得更多的选项,它允许使用相同API的多个树实现。

代码语言:javascript
复制
TREEBEARD: Adjacency List, Materialized Path, & Nested Sets

MPTT: NESTED sets

而且,MPTT在涉及1000多个节点的大型树操作中可能要慢一些,所以我认为项目大小应该考虑到您的考虑因素。

要了解更多信息,请查看树胡子维护者雅各布·里夫( Jacob )的DjangoCon谈话。讨论的主题是“表示关系数据库中的层次结构”,请查看他的GitHub

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33236056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档