0

ドキュメント データベースに関して私が理解していないことが 1 つあります。それは、共有オブジェクトの処理方法です。この 2 つの異なるオブジェクト/ドキュメントを取り上げます。

Email
    BelongsTo (User object)

Comment
    WrittenBy (User object)

ユーザーは、両方のドキュメントで同じユーザーです。

  • ドキュメントに保存されている実際のユーザーまたは何らかの参照 (RDBMS など)
  • ユーザーの変更はどのように処理されますか (新しい名前など)?
4

2 に答える 2

0

それはあなたがデータをどのように消費することを計画しているかによると思います。たとえば、読み取りが集中していて、オブジェクト内のユーザーのユーザー名にのみアクセスする場合は、コメント内のその情報も複製する方がよいでしょう。もちろん、ユーザー名の変更を許可する場合、これは更新コストの増加につながります。また、コメントを最新のユーザー名で更新することが重要です。代わりに、1つのビューコンテキスト用に作成された効果的なビュー/ドキュメントを作成したため、読み取りモデルにドキュメントストレージを使用し、データを複製する方法を採用しました。確かに、更新はより多くのリソースを消費しましたが、私たちにとってはそれで問題ありませんでした。IDに基づいてdoc1とdoc2の間の「手動」参照を使用して、他の構成でも作業を行っています。O / RMよりも少し手作業が多くなりますが、魔法ははるかに少なくなります。

BlogPost-<1:N>-Commentsの典型的な例があります。ここでは、IDを介してアクセスできる投稿にコメントを含めることができます。繰り返しますが、これをどのように使用しますか?投稿を表示せずにコメントを使用することはありますか?投稿を見るとき、あなたはいつもコメントに興味がありますか?MongoDBの16MBのようなドキュメントサイズの合計ストレージに根本的な制限はありますか?次に、分割する必要があるかもしれません。

私は非常に漠然とした応答を知っていますが、それは非常に「ユースケースによって異なります」という質問でもあります。

于 2012-12-02T15:12:11.723 に答える
0

使用する NoSQL 実装によって異なります。いくつかの方法があります。JCR (JackRabbit、CRX など) を使用している場合は、実際にユーザー ノードへの参照を格納するか、リレーショナル アプローチを使用してユーザー ノードのアドレスを格納することができます。

于 2011-04-01T11:18:23.770 に答える