コメントが埋め込まれたリストドキュメントがあります。ビュー内のユーザーのコメントとともに、ユーザーの画面名とプロフィール写真を表示したいと思います。プロフィール写真が変更される可能性があり、画面名も変更される可能性があります。
私は、ここでの設計のベストプラクティスを特定しようとしています。Mongoを最大限に活用するには、埋め込まれたコメントは次のようになります。
コメントモデル
class Comment
include Mongoid::Document
field :user_id
field :username
field :profile_pic_url
field :content
field :created_at, type: Date
embedded_in :list, :inverse_of => :comments
end
ただし、コメント内のすべてのインスタンスを更新するように見えるユーザーモデルにafter_saveフィルターがない限り、ユーザーがコメントデータ(ユーザーの画面名とプロファイル写真)を変更すると、コメントデータ(ユーザーの画面名とプロファイル写真)が古くなるリスクがあります。
適切な設計に関するガイダンスはありますか?コメントが埋め込まれないようにしたり、ユーザーのコメントが多く、リストのコメントが多いようにすることもできますが、モンゴの強みを生かそうとしています。