我有一个包含三个表的Rails网站:User,Task和TaskInstance。 Task表就像一个主要的任务列表,没有耦合到任何特定用户,而TaskInstance表包含指示用户完成特定任务的记录。换句话说,TaskInstance具有用户ID,任务ID和完成状态(布尔值)。用户有许多TaskInstances。
我想允许管理员添加新任务。这样做应该为每个用户为该任务创建一个新的TaskInstance。然而,这听起来并不像它会很好地扩展。假设我有五万用户,创建一个新任务将需要立即在现场创建五万个TaskInstances。
如果可以做一些延迟加载会很好,但我不知道我会在哪里做。我可以在登录时进行,例如当用户登录时,检查是否已创建新任务;如果是这样,只为该特定用户创建一个新的TaskInstance。但那么在创建新任务时已经登录的用户呢?
我想我只是想知道这种问题的首选方法是什么。
如果需要,请将其移至社区维基。
答案 0 :(得分:2)
不要预先创建TaskInstance
,而是仅在需要时创建Task
。由于无论如何都会创建新的TaskInstance
,因此无论是否有Task
,都可以向任何用户显示。一旦用户决定以TaskInstance
开头,{{1}}就会被实例化。