2014-12-22 25 views
0

我需要在我的数据库中生成一个新表,以便从各种模型中以特定方式存储数据。所涉及的模型和关系是:rails创建一个缓存表

Club :has_many users 
User :has_many posts, :has_many comments 

现在我需要以下几列(我希望的名字是有足够的描述):

  • 俱乐部名称
  • 日期
  • NumUsersCreatedBeforeDate
  • NumPostsByUsersBelongingToCurrentClubBeforeDate
  • NumCommentsByUsersBelongingToCurrentClubBeforeDate

因此,每个日期的每个俱乐部都会有一个新的行,并且3个长名字列中的数字将是累计总数。这意味着如果我有1000个俱乐部,并且该应用已经运行了30天,我将有30,000行,每个俱乐部在每个日期都有一行。

我有一种感觉,所有这一切都无法用一个生成迁移命令来完成,我将不得不专门为此生成一个模型。有关建立此表的任何建议?

+0

是否有任何理由想要缓存?所有这些列可以通过sql查询完成。除非你在整个应用程序中显示它,否则我会立即执行。最好为它创建一个模型,看似每天都要创建它们。 –

+0

这是一个显示整体统计信息的管理页面(我已经使用活动管理员管理我自己的管理页面,这应该是一个单独的和最低限度功能的管理页面)。我已经走了新的模型路线,而且我正在制定一个耙子任务来每天更新一次表格。 – volx757

+1

听起来就像你已经把它分类了。我唯一的建议是让它属于一个俱乐部,而不是存储俱乐部名称。如果他们改变俱乐部的名字怎么办? –

回答

0

是的,最好的方法是为此特定目的制作一个新模型,并创建一个rake任务,该任务遍历应用程序每天运行以为每个1000行(每个俱乐部一个)填充表格然后每天通过为新的一天填充另外1000行来继续更新。