我被要求提供某種報告(日誌記錄)服務。該員工在本地安裝了許多公司的Web應用程序(只是一些動態網站,用PHP編寫)。這個網絡應用程序是一種調查。所有的數據都保存在本地數據庫中,但現在要求這些數據(調查結果)在每次提交表單後也會發送到中央服務器。Rails 3中一個AR模型中的多個數據庫表格
有四種類型的調查。他們是這樣組織的,有很多項目,每個項目只能有一個類型的調查(STI在這裏?),調查屬於一個項目。每項調查都會收到來自本地應用的報告,因此它會有很多報告。記錄這個報告的Rails 3應用程序應該模仿這種邏輯。第一個問題是:這個AR結構對你有意義嗎?
Project-1--------1-Survey-1-------*-Report
Project
has_one :survey
has_many :reports, :through => :survey
Survey
belongs_to :project
has_many :reports
Report
belongs_to :survey
第二個問題是關於一個AR模型有多個表。如果所有數據都將存儲在reports
表中,表格將變得非常快速,並且對於屬於特定調查的報告的高效查詢可能會在一段時間後出現問題。也許最好每個調查都有單獨的表格?像reports_<survey_id>
。這可能嗎?此外,我不知何故被迫使用MySQL,但如果有另一個更好的解決方案,我可以嘗試通過它。
如果你還在這裏,感謝您閱讀此:)
謝謝,看起來很簡單。我希望這不會造成任何問題。 – Ernest 2011-05-17 12:27:12
問題將會;) 因爲,你應該手動控制這個。並在創建調查時創建新的報告表 – Anton 2011-05-17 14:13:29
@Anton什麼?這聽起來像一團糟。請參閱http://stackoverflow.com/questions/44145/database-sharding-and-rails – coreyward 2011-05-17 19:23:16