【发布时间】:2015-02-20 21:54:53
【问题描述】:
我需要在我的数据库中生成一个新表,该表从各种模型中提取以以特定方式存储数据。涉及的模型和关系是:
Club :has_many users
User :has_many posts, :has_many comments
现在我需要以下列(我希望这些名称具有足够的描述性):
- 俱乐部名称
- 日期
- NumUsersCreatedBeforeDate
- NumPostsByUsersBelongingToCurrentClubBeforeDate
- NumCommentsByUsersBelongingToCurrentClubBeforeDate
因此,每个俱乐部在每个日期都会有一个新行,3 个长命名列中的数字将是累积总数。这意味着,如果我有 1000 个俱乐部,并且应用程序已经运行了 30 天,我将有 30,000 行,每个日期每个俱乐部一个。
我有一种感觉,这一切都不能通过一个生成迁移命令来完成,我必须专门为此目的生成一个模型。建这个表有什么建议吗?
【问题讨论】:
-
你有什么理由要缓存这个吗?所有这些列都可以通过 sql 查询来完成。除非您将其全部显示在您的应用程序中,否则我会立即执行此操作。最好有一个模型,并且似乎每天都有 cron 工作来创建它们。
-
它用于显示整体统计信息的管理页面(我已经在我自己的管理页面中使用了活动管理员,这应该是一个单独且功能最少的管理页面)。我已经走了新的模型路线,并且正在制定一项 rake 任务以每天更新一次表格。
-
听起来你已经把它整理好了。我唯一的建议是让它属于一个俱乐部,而不是存储俱乐部名称。如果他们更改俱乐部的名称怎么办?
标签: ruby-on-rails caching ruby-on-rails-4 database-design