また、保存されたエンティティ間の関係を可能NoSQLの店はありますか?
質問
私はまた、保存されたエンティティ間の関係を維持する/保存するために提供NoSQLのキー値を格納するために探しています。私はGoogleのApp Engineのデータストアは、エンティティ間の所有・非所有関係することができます知っています。人気のNoSQLストアのいずれかに類似したものを提供していますか?
それらのほとんどは、以下のスキーマです適切な関係にする方法は、キーと値のストア上にありますが?
解決
これは、エンティティ間の関係のためのサポートを提供するために、のをグラフデータベースのコア機能に属します。通常は、ノードおよびグラフ内の関係/エッジなどの関係として、あなたのエンティティをモデル化します。ただ、グラフに追加します - RDBMS のとは異なりますが、事前に関係を定義する必要はありません必要に応じて(スキーマフリー)。私は、これは実際に見ることができる方法のいくつかの例を与えるのドメインモデリングギャラリーを作成しました。例はのNeo4jのgraphdb、私はに関与していたプロジェクトを使用しています。このプロジェクトのメーリングリストをグラフモデリングの質問のために非常に役立つことを証明するために使用します。
ドキュメント指向データベース Riakにの文書間のリンクをサポートしています。
あなたは(キー/値のような)任意のデータベースエンジンの上に関係のサポートを追加することができますが、それはwhithout仕事を付属していません。それはすべてあなたのユースケースまで付属しています。あなたはより多くの詳細を提供する場合、それは便利な答えを思い付くする方が簡単です。
おっと、今私は、タイトルが「NoSQLの店」と言うのを見て、その後、あなたの実際の質問には、「NoSQLのキー値ストア」にこれを絞り込みます。キー/値ストアはエンティティ間の関係を定義するための何の意味を持っていないので、私はまだ私の答えを投稿します。
他のヒント
MongoDBは、文書データベースではなく、キー/値ストアです。しかし、文書間の参照をの簡単なフォームを提供しません。これらは、参照されたオブジェクトが削除されたときに自動的にゼロにされているSQL外部キーのように、多かれ少なかれ仕事ます。
これは、外部キーを使用すると思いれるものと同じ種類で十分ですが、それは深刻なグラフトラバーサル用に最適化されていません。
Google App Engineの中の関係は、コードにアクセスしたときに自動的に参照解除されたエンティティへの唯一のキーがあります。フィルタ処理するために使用された場合にのみ値です。そのDBのAPI関数ではなく、明示的なものなので、ReferencePropertyへのアクセスは、単にオブジェクトへのアクセスを得るために参照モデルに対するクエリを実行します。
あなたはMongoDBのようなものを見れば、関係は(私が覚えたものから)に、オブジェクト保管されていますが、ある意味で欲しいしかし、彼らはまた、あなたが参加し、テーブルを検索しますAPIを作成することを保存することができますApp Engineは働き方と同様の方法で、関係のあなたの項目ます。
ポールます。