0

我有一个包含三个表的 Rails 网站:用户、任务和任务实例。Task 表就像任务的主列表,不与任何特定用户耦合,而 TaskInstance 表包含指示用户完成特定任务的记录。换句话说,TaskInstance 有一个 User id、一个 Task id 和一个完成状态(布尔值)。一个用户有许多任务实例。

我想允许管理员添加新任务。这样做应该为每个用户的该任务创建一个新的任务实例。然而,这听起来并不像它会很好地扩展。假设我有五万个用户,创建一个新任务需要立即在现场创建五万个 TaskInstance。

如果可以进行某种延迟加载会很好,但我不知道我会在哪里做。我可以在登录时进行,例​​如当用户登录时,检查是否创建了新任务;如果是这样,则仅为该特定用户创建一个新的 TaskInstance。但是,当新任务创建时已经登录的用户呢?

我想我只是想知道解决这类问题的首选方法是什么。

如果需要,请将其移至社区 wiki。

4

1 回答 1

2

不要TaskInstance预先创建 s,而仅在需要时创建。由于Task无论如何都会创建一个新的,它可以显示给任何用户,无论是否有一个TaskInstance。一旦用户决定从 a 开始Task, 就TaskInstance应该被实例化。

于 2012-07-27T09:40:19.363 回答