[database] どのタイプのNoSQLデータベースが階層データを格納するのに最適ですか?


4 Answers

MongoDBとCouchDBはソリューションを提供しますが、機能は組み込まれていません。 リレーショナルデータベースでの階層の表現についてはこの質問を参照してください。他の多くのNoSQLソリューションはこの点で似ています。 ノードが追加、削除、移動されると、その情報を再計算する独自のアルゴリズムを作成する必要があります。 一般的に言えば、高速読み込み時間( ネストされたセットなど )と高速書き込み時間( 隣接リスト )の間で決定しています。 これらの行に沿ったより多くのオプションについては前述のSOの質問を参照してください - フラットテーブルのアプローチは、あなたの質問に最も一致するように見えます。

これらの考慮事項を抽象化する標準の1つはJava Content Repository (JCR)です。Apache JackRabbitJBoss eXoの両方が実装されています。 舞台裏では、上記のように階層を維持するための何らかのアルゴリズム計算がまだ行われていることに注意してください。 さらに、JCRはアクセス権、ファイルストレージ、およびその他のいくつかの側面も処理します。そのため、プロジェクトには過度の負荷がかかることがあります。

Question

どのタイプのNoSQLデータベースが階層データを格納するのに最適ですか?

たとえば、ツリー構造のフォーラムの投稿を保存したいとします。

original post
 + re: original post
 + re: original post
   + re2: original post
     + re3: original post
   + re2: original post



週末はMUMUPS dbをフルスタックのJavaScriptブラウザアプリケーション開発フレームワークのバックエンドとして使用したトレーニングコースで過ごしました。 素晴らしいもの! 私はGPLの下でMUMPSのGT.Mディストリビューションをお勧めしたいと思います。 または、バニラMUMPSのhttp://sourceforge.net/projects/mumps/?source=recommendedを試してみてhttp://sourceforge.net/projects/mumps/?source=recommended 。 ewd.js jsフレームワークのためのhttp://robtweed.wordpress.com/と、MUMPSの詳細をご覧ください。




Exist-db 、XML永続性のための階層データモデルを実装しました。




同じ問題に直面して、私はLua + Redis https://github.com/qbolec/Redis-Tree/を使って自分の(とてもシンプルな)ソリューションを作ることにしました




明らかにLDAP。 OpenLDAPはその短期的な作業を行います。




Related