必要なすべての関数を備えた PHP (MYSQL を使用) のネストされたセット クラスを探しています。例えば:
createLeftNode、createRightNode、createRootNode、createSubNode、deleteNode、およびmoveTree。左に 1 つ、右に 1 つ、上に 1 つ、下に 1 つだけでなく、別の木の中の木の一部。
ありがとう!
必要なすべての関数を備えた PHP (MYSQL を使用) のネストされたセット クラスを探しています。例えば:
createLeftNode、createRightNode、createRootNode、createSubNode、deleteNode、およびmoveTree。左に 1 つ、右に 1 つ、上に 1 つ、下に 1 つだけでなく、別の木の中の木の一部。
ありがとう!
look at the nested behavior of Doctrine
階層データを扱う場合は、適切にネストされたセットが最適です。特にこれらの情報をデータベースに保存したい場合は、php 配列のみを使用して実装するのははるかに複雑です。
あなたはこれを試すことができます。使用したことはありませんが、短いコードのスクリーニングの後、ほぼ完全に見えます。
何か新しいものがあります: http://www.sideralis.org/baobab/
古くて時代遅れの答え。ライブラリはサポートされなくなりました。
私は、ユーザーが会社の組織図を作成および編集できるようにする必要があるプロジェクトのために、投稿されたnstrees ライブラリ「buggzzy」( http://www.edutech.ch/contribution/nstrees/index.php ) を使用しました。 .
「Modified Preorder Tree Traversal」アルゴリズムはとても気に入っていますが、nstree ライブラリは遅いように思えます。私の場合、ツリーを再帰的に反復する必要があります。多分それは私のスクリプトで遅い何かです。
とにかく、私はまだ代替手段を探しています。最近 PEAR の Web サイトをチェックしたところ、ツリー ライブラリも見つかりました: http://pear.php.net/package/Tree
PEAR ライブラリは NSTREE ほど包括的ではないように見えましたが、よりパフォーマンスが高い可能性があると思います。
この質問に大いに役立った記事:階層データをデータベースに保存する
このライブラリを見てください https://github.com/fpietka/Zend-Nested-Set : Zend Framework で使用するネストされたセット モデルの実装
かなり遅れていましたが、https://github.com/fpietka/Zend-Nested-Setを更新しました(単体テストも含めて)。
Doctrine DBAL をデータベース抽象化レイヤーとして使用するネストされたセットの実装を作成しました。Drupal で使用しているため、revision_id
.