2014-12-22 30 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行來繼續更新。