我被要求提供某种报告(日志记录)服务。该员工在本地安装了许多公司的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