会話システムの設計にDocumentDbを使用する場合、関連するすべての関係者の会話の詳細を繰り返すのは良い考えですか?Azure DocumentDBのコレクション間で同じデータを繰り返す
シャーディングは、ユーザー名の最初のアルファベットを使用して実装されています。ユーザAはF、I、Zにメッセージを送信します。これらのユーザは(シャーディングのため)異なるコレクションの一部であるため、メッセージの詳細は各コレクションで繰り返されます。このデザインは速い読みに役立ちます(履歴を表示するために1つの場所に移動する必要があるので速くなります)。しかし、私が複数の場所に書き込む必要があるので、執筆は面倒かもしれません。
私の質問は、DocumentDbを使用してそのようなシステムを構築するときに、詳細を繰り返すことができますか?または、詳細については集中コレクションを作成し、各ユーザーコレクションのid部分を維持することをお勧めしますか?
助けてください。
ありがとう、 Soma。
ありがとうございました。現在も様々な選択肢を試しています。 1つのアイデアに着手する前にいくつかのテストを実行します。 –
Cool。答えを受け入れることができますか? –
DRYがコードにしかないということは、データにも適用されます。標準的な定義を引用するには:「知識のすべての部分は、システム内で単一の、明確で信頼できる表現を持たなければなりません。それは、コピーがオリジナルであるかのようにシステムが決して扱わないことを知っている限り、情報のコピーが非常に有用である(例えばキャッシュするとき)時があるということである。 – neuronaut