問題タブ [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 を使用して、1 つのテーブルに複数のツリーを含める
CakePHP アプリでフラット リストをツリーに変換していますが、この機能を持つ既存の動作があることがわかりました。私のテーブルは 1 つの巨大なツリーではなく、ユーザーが生成した多くのツリーで構成されています。基本的に、各ユーザーは独自のフォルダー構造を作成できます。ただし、ツリー ビヘイビアーは、1 つの巨大なツリーであるかのように、テーブル全体の lft/rght 値のみを追跡するようです。したがって、新しいフォルダーまたはサブフォルダーが追加された場合は、テーブル全体を更新する必要があります。
Tree Behavior が実際にどのように機能するかについて私は間違っていますか? そうでない場合、これを回避する方法はありますか?
参照リンク:
django - Django-mptt は完全にバグがありますか、それとも間違っていますか?
私は運がほとんどない状態でdjango-mpttを使用しようとしています。これは、Python2.5、windows、sqlite3、Django 1.2pre、svn の最新の django-mptt を使用しています。
コード:
モデル:
設定:
これにより、1 つのルートと 2 つの子が各非リーフ ノードからぶら下がっているツリーが作成されます。
さあ、楽しみが始まります:
多くの祖先が間違っているのはなぜですか。たとえば、ノード 10 には祖先 (0,1,10) が必要です。
私は何か間違ったことをしていますか、それとも django-mptt にバグがありますか?
mysql - ルート要素mysqlを選択するMPTT
ルート要素を選択するには、どの mysql クエリを使用すればよいですか? 次のようなツリー構造があるとしましょう: http://www.ipix.lt/desc/18496369 そして、(Vaisiai、Daržovės) 要素を選択したいと思います。
python - Python / Djangoでの階層(親/子)データの保存:MPTTの代替?
Djangoで階層(親/子)データを保存して使用するための良い方法を探しています。私はdjango-mpttを使用していますが、脳とは完全に互換性がないようです-主にツリー内で物事を移動するときに、非自明な場所で非自明なバグが発生します:一貫性のない状態になります。ノードとその親は、それらの関係について意見が一致しません。
私のニーズは単純です:
- 与えられたノード:
- そのルートを見つける
- その祖先を見つける
- その子孫を見つける
- 木で:
- ノードを簡単に移動する(つまり、親を変更する)
私のツリーは小さくなります(20レベルを超える最大10kノード、通常ははるかに小さく、たとえば1または2レベルの10ノード)。
python/djangoでツリーを作成するもっと簡単な方法が必要だと思います。一貫性を維持するためのより良い仕事をする他のアプローチはありますか?
sql - MySQLでツリーをトラバースするための深くネストされたサブクエリ
データベースにテーブルがあり、ハイブリッド入れ子集合(MPTT)モデル(lft
とrght
値を持つモデル)と隣接リストモデル(parent_id
各ノードに格納)を使用してツリー構造を格納しています。
この質問は、ツリーのMPTTの側面のいずれにも関連していませんが、誰かがそれを活用する方法について良いアイデアを持っている場合に備えて、私はそれを残すと思いました。
エイリアスのパスを特定のノードに変換したい。例:"users.admins.nickf"
ルートにある「users」の子であるエイリアス「admins」を持つノードの子であるエイリアス「nickf」を持つノードを検索します。には一意のインデックスがあります(parent_id, alias)
。
まず、関数を記述して、その部分へのパスを分割し、データベースに1つずつクエリを実行することから始めました。
しかし、その後、可変量のネストを使用して、単一のクエリでそれを実行できることに気付きました。
サブクエリの数はパスのステップ数に依存するため、サブクエリが多すぎるという問題が発生しますか?(そんなことがあったら)
このクエリを実行するためのより良い/よりスマートな方法はありますか?
sql-server - SQL Server 2008 で隣接リスト テーブルを MPTT に変換する
古い学校の隣接リスト テーブルから MPTT への変換を支援する便利なツールまたはスクリプト リソースはありますか?
過去に私よりも賢い少数の魂が直面した問題だと私は考えていたでしょう。彼らが旅行中に賢い解決策を思いついた場合に備えて、私自身の旅に出る前にまずここをチェックしておこうと思いました。事。
php - PHPのトラバーサルツリーのデータ構造?
CSやデータ構造のバックグラウンドがありません。データベースとの操作と同期のために、変更されたプレオーダートランスバーサルツリーを格納するPHPクラスを作成したいと思います。
基本的に、次のようなデータを保存する必要があります。
配列を使うことを考えていましたが、面倒そうです。これが次のような配列の配列である場合、array( 'name'=> "PORTABLE ELECTRONICS", 'lft' => 10, 'rgt' = 19 )
すべての数値が存在することを確認するためにその配列を繰り返しループするのは面倒になります。
PHPにはいくつかの新しいデータ構造が用意されているので、これらのいずれかが配列を使用するよりもメリットがあるのではないかと思います。
- SplDoubly
- LinkedList
- SplStack
- SplQueue
- SplHeap
- SplMaxHeap
- SplMinHeap
- SplPriorityQueue
- SplFixedArray
- SplObjectStorage
編集:このクラスは、データベーステーブルに格納されているツリーへのゲートウェイにはなりません。(もしそうなら、私はクラスのクエリを持っているでしょう。)それはある種のPHPデータ構造のスタンドアロンmmptです。
sql - SQLmpttテーブルのすべての親IDを更新します
MPTT(Modified Preorder Tree Traversal)メソッドを使用して階層データを格納するSQLテーブルについて考えてみます。
ここで、すべてのparent_id外部キーを一度に更新したいと思います。残念ながら、私のSQLスキルは本当に錆びています。誰かが私にそれを行うための効率的な方法を教えてもらえますか?
それが私が試した方法です:
残念ながら、これは機能していないようです。
エラー:FROMのサブクエリは、同じクエリレベルの他のリレーションを参照できません
ヒントをありがとう。
PS:重要な場合、これはPostgreSQL上にあります。