User、Task、および TaskInstance の 3 つのテーブルを持つ Rails Web サイトがあります。Task テーブルはタスクのマスター リストのようなもので、特定のユーザーに結合されていません。一方、TaskInstance テーブルには、ユーザーが特定のタスクを完了したことを示すレコードが含まれています。つまり、TaskInstance には、ユーザー ID、タスク ID、および完了ステータス (ブール値) があります。ユーザーには多くの TaskInstances があります。
管理者が新しいタスクを追加できるようにしたいと考えています。そうすることで、すべてのユーザーのそのタスクの新しい TaskInstance を作成する必要があります。ただし、それはうまくスケーリングできるようには思えません。5 万人のユーザーがいるとします。新しいタスクを作成するには、その場ですぐに 5 万個の TaskInstances を作成する必要があります。
代わりに、ある種の遅延読み込みを行うことができれば良いのですが、どこでそれを行うのかわかりません。ログイン時にそれを行うことができます。たとえば、ユーザーがログインしたときに、新しいタスクが作成されたかどうかを確認します。その場合は、その特定のユーザーに対してのみ新しい TaskInstance を作成します。しかし、新しいタスクが作成されたときにすでにログインしているユーザーはどうなるでしょうか?
この種の問題に対する好ましいアプローチは何かと思っているだけだと思います。
必要に応じて、これをコミュニティ wiki に移動します。