Firebase ガイドでは、迅速な取得のためにデータ ストレージを最適化することを推奨しています。ノード間で情報を複製することでデータを非正規化するとパフォーマンスは向上しますが、データの一貫性の維持に懸念が生じます。
このアプローチでは、複数のパス書き込みを使用して、両方のユーザー名をアトミックに更新します。プロファイルと関連するすべてのメッセージに含まれます。これにより、複雑なセキュリティ ルールやクライアント側のコード処理を必要とせずに変更の同期が保証されます。
アトミックな更新が実現できない場合は、ユーザーのアクションをその影響から切り離すことができます。サーバー側のスクリプトが名前の変更を処理します。その後、クエリを使用してメッセージを更新します。瞬時ではありませんが、メッセージは最終的に一貫性を持ちます。
特定のシナリオでは、重複したデータが過去の状態を表す場合があります。たとえば、古いメッセージ内のユーザー名が現在の名前と一致する必要はありません。このアプローチは単純ですが、すべての状況に適しているわけではありません。
最適なアプローチの選択は、特定のデータ構造とアプリケーションの要件によって異なります。トランザクション更新は最高レベルの整合性を提供しますが、結果整合性と重複の無視はよりシンプルなソリューションを提供します。選択は、関連するトレードオフを考慮した後に行う必要があります。
以上が非正規化データを使用する場合に Firebase でデータの一貫性を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。