我有一个包含三个表的 Rails 网站:用户、任务和任务实例。Task 表就像任务的主列表,不与任何特定用户耦合,而 TaskInstance 表包含指示用户完成特定任务的记录。换句话说,TaskInstance 有一个 User id、一个 Task id 和一个完成状态(布尔值)。一个用户有许多任务实例。
我想允许管理员添加新任务。这样做应该为每个用户的该任务创建一个新的任务实例。然而,这听起来并不像它会很好地扩展。假设我有五万个用户,创建一个新任务需要立即在现场创建五万个 TaskInstance。
如果可以进行某种延迟加载会很好,但我不知道我会在哪里做。我可以在登录时进行,例如当用户登录时,检查是否创建了新任务;如果是这样,则仅为该特定用户创建一个新的 TaskInstance。但是,当新任务创建时已经登录的用户呢?
我想我只是想知道解决这类问题的首选方法是什么。
如果需要,请将其移至社区 wiki。