问题标签 [mptt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 修改前序树遍历——寻找下一个节点
我有这个数据:
我需要按以下顺序(id)遍历这个层次结构:1 > 3 > 5 > 2 > 4
我怎样才能做到这一点?
假设我想找到node_x的下一个节点。
此公式仅在某些情况下有效(节点 ID 为 1、3、5、2)。节点 2 的下一个节点应该是 4。
php - 如何将 MPTT 层次结构数据正确排序为多维数组。
我试图弄清楚如何编写一个返回多维数组的函数。我知道如何使用“category_parent”值编写函数。但我只是想写一个函数,它可以通过只使用左右键来创建多维数组。
任何帮助表示赞赏!
mysql - 使用 CakePHP Tree Behavior 在一张表中拥有多棵树
我在我的 CakePHP 应用程序中将一个平面列表转换为一个树,并发现存在具有此功能的现有行为。我的表不是一棵巨树,而是由许多用户生成的树组成:基本上,每个用户都可以创建自己的文件夹结构。然而,树行为似乎只会跟踪整个表中的 lft/rght 值,就好像它是一棵巨树一样。因此,如果添加了新文件夹或子文件夹,则需要更新整个表。
我对树行为的实际工作方式是否有误,或者如果没有,有没有办法解决这个问题?
参考链接:
django - Django-mptt 完全错误还是我做错了?
我正在尝试使用django-mptt,但运气不佳。这是 svn 最新的 Python2.5、windows、sqlite3、Django 1.2pre、django-mptt。
编码:
模型:
设置:
这应该创建一棵树,每个非叶节点都有一个根和两个子节点。
现在乐趣开始了:
为什么很多祖宗都错了?例如,节点 10 应该有祖先,(0,1,10)
我做错了什么还是 django-mptt 中有错误?
mysql - MPTT选择根元素mysql
我应该使用什么 mysql 查询来选择根元素?假设我有这样的树结构: http ://www.ipix.lt/desc/18496369 我想选择(Vaisiai,Daržovės)元素。
python - 在 Python/Django 中存储分层(父/子)数据:MPTT 替代方案?
我正在寻找一种在 Django 中存储和使用分层(父/子)数据的好方法。我一直在使用django-mptt,但它似乎与我的大脑完全不兼容 - 我最终在不明显的地方遇到不明显的错误,主要是在树中移动东西时:我最终状态不一致,其中节点和它的父节点会不同意他们的关系。
我的需求很简单:
- 给定一个节点:
- 找到它的根源
- 找到它的祖先
- 找到它的后代
- 用一棵树:
- 轻松移动节点(即更改父节点)
我的树会很小(最多 10k 个节点超过 20 个级别,通常要小得多,比如 10 个节点具有 1 个或 2 个级别)。
我不得不认为必须有一种更简单的方法在 python/django 中创建树。还有其他方法可以更好地保持一致性吗?
sql - 用于在 MySQL 中遍历树的深度嵌套子查询
我的数据库中有一个表,我使用混合嵌套集 (MPTT) 模型(具有lft
和rght
值的模型)和邻接列表模型(存储parent_id
在每个节点上)存储树结构。
这个问题与树的任何 MPTT 方面都没有关系,但我想我会留下它,以防万一有人知道如何利用它。
我想将别名路径转换为特定节点。例如:"users.admins.nickf"
将找到别名为“nickf”的节点,该节点是别名为“admins”的节点的子节点,别名“admins”是位于根目录的“users”的子节点。上有一个唯一索引(parent_id, alias)
。
我从编写函数开始,以便将路径拆分为各个部分,然后一一查询数据库:
但后来我意识到我可以用一个查询来做到这一点,使用可变数量的嵌套:
由于子查询的数量取决于路径中的步骤数,我是否会遇到子查询过多的问题?(如果有这样的事情)
有没有更好/更智能的方法来执行这个查询?
sql-server - 在 SQL Server 2008 中将邻接表转换为 MPTT
是否有有用的工具或脚本资源来帮助从老式邻接表转换为 MPTT?
我会认为这是一些比我过去更聪明的灵魂所面临的问题,并认为我会先检查这里,以防他们在旅行中想出一个聪明的解决方案 - 在开始我自己的旅程之前一个东西。
php - PHP中遍历树的数据结构?
我没有 CS 或数据结构方面的背景。我想创建一个 PHP 类来存储修改后的预序横向树,用于操作和与数据库同步。
基本上我需要存储如下数据:
我正在考虑使用数组,但它似乎很麻烦。如果它是这样的数组数组:array( 'name'=> "PORTABLE ELECTRONICS", 'lft' => 10, 'rgt' = 19 )
,那么重复遍历该数组以确保所有数字都存在等会很麻烦。
由于 PHP 有一些新的数据结构可用,我想知道这些中的任何一个是否比使用数组能给我带来任何好处?
- SplDouble
- 链表
- SplStack
- SplQueue
- 分裂堆
- 最大堆
- SplMinHeap
- SplPriorityQueue
- SplFixedArray
- SplObjectStorage
编辑:这个类不会成为存储在数据库表中的树的网关。(如果是的话,我只会查询类。)它只是某种 PHP 数据结构中的独立 mmpt。
sql - 更新 SQL mptt 表中的所有父 ID
考虑一个 SQL 表,它使用MPTT(Modified Preorder Tree Traversal)方法存储分层数据。
现在我想一次更新所有的 parent_id 外键。不幸的是,我的 SQL 技能真的生疏了。谁能指出一种有效的方法来做到这一点?
这就是我尝试的方式:
不幸的是,这似乎不起作用:
错误:FROM 中的子查询不能引用相同查询级别的其他关系
感谢您的任何提示。
PS:如果重要的话,这是在 PostgreSQL 上。