私はこの NOSQL 全体に不慣れで、最近 mongoDB に興味を持っています。私はゼロから新しい Web サイトを作成しており、MONGODB/NORM (C# 用) を唯一のデータベースとして使用することにしました。私はドキュメント モデル データベースを適切に設計する方法について多くのことを調べてきましたが、ほとんどの場合、設計はうまく機能していると思います。新しいサイトを始めて約 6 か月になりますが、何度も何度も対処しなければならないデータの複製/同期に関する問題が発生し始めています。私が読んだところによると、これはドキュメント モデルで想定されていることであり、パフォーマンスに関しては理にかなっています。IE 埋め込みオブジェクトをドキュメントに貼り付けて、読みやすくします - 結合はありません。もちろん、常に埋め込むことはできないため、mongodb には、基本的にリレーショナル DB の外部キーに類似した DbReference の概念があります。
ここに例を示します。ユーザーとイベントがあります。どちらも独自のドキュメントを取得し、ユーザーはイベントに参加し、イベントにはユーザーの出席者がいます。データが限られているイベントのリストを User オブジェクトに埋め込むことにしました。ユーザーのリストを「出席者」として Event オブジェクトにも埋め込みました。ここでの問題は、Event オブジェクトにも埋め込まれているユーザーのリストとユーザーを同期させておく必要があることです。私がそれを読んだとき、これは好ましいアプローチであり、物事を行うNOSQLの方法であるようです。取得は高速ですが、フォールバックはメインの User ドキュメントを更新するときです。Event オブジェクトにもアクセスする必要があり、おそらくそのユーザーへのすべての参照を見つけて更新する必要があります。
私が持っている質問は、これは人々が対処する必要がある非常に一般的な問題ですか? 「おそらく NOSQL 戦略は、私がここでやろうとしていることに適合しない」と言い始める前に、この問題がどのくらい発生する必要がありますか? 結合を行う必要がないというパフォーマンスの利点が、埋め込みオブジェクトでデータの同期を維持し、そのために DB に対して複数の読み取りを行うのに苦労しているために、いつ不利になるのでしょうか?