階層データ構造は、多くの場合、リレーショナル データベースに格納されます。この種のストレージは柔軟ですがフラットであるため、クエリごとにツリー構造を構築する必要があります。フォーラムの投稿をツリー構造として保存したいのですが、たとえば日付や作成者で投稿を選択するなど、効率的にクエリを実行できる必要があります。
Java からアクセスできるオープン ソースのデータベースが必要です。
そうするための最良の方法は何ですか?CouchDB? neo4j? ...?
階層データ構造は、多くの場合、リレーショナル データベースに格納されます。この種のストレージは柔軟ですがフラットであるため、クエリごとにツリー構造を構築する必要があります。フォーラムの投稿をツリー構造として保存したいのですが、たとえば日付や作成者で投稿を選択するなど、効率的にクエリを実行できる必要があります。
Java からアクセスできるオープン ソースのデータベースが必要です。
そうするための最良の方法は何ですか?CouchDB? neo4j? ...?
この問題に初めて遭遇したとき、素晴らしい記事 (リンク) を見つけました。
つまり、RDBMS の世界では、2 つの主要なツリー モデル ストレージ アプローチがあります。
Neo4j に関するすばらしい記事を次に示します。一般に、ドキュメント データベースはまだ比較的フラットであり、面倒なセットアップが必要になる可能性があるため、neo4j が最適なオプションのようです(それでも実行可能です)。
グラフ データベースである Neo4j は、ツリーの保存に適しているはずです。私はそれを使用したことはありませんが、問題のドメインを考えると、それが最良の選択肢のようです (少なくとも最初に調査するもの)。
「最善の方法」とは何かについては、実装と要件に依存すると思います。グラフ データベース、ドキュメント データベース、オブジェクト データベース、およびリレーショナル データベース (またはそうでないもの) に対して簡単なテストを作成し、解決しようとしている問題にどれが適合するかを確認する必要があると思います。