RoR教程为每个表提供一个模型,以便ORM工作.我的数据库模式有大约70个表在概念上划分为5组功能(例如,任何给定的表存在于一个且只有一个功能组中,并且不同组的表之间的关系被最小化.)因此:我应该为每个概念组设计一个模型,或者我应该简单地拥有70个Rails模型并让分组"概念化"?谢谢!
最有可能的是,你应该有70个型号.您可以将模型命名为5个名称空间,每个组一个,但这可能比它的价值更麻烦.更有可能的是,每个组都有一些共同的功能.在这种情况下,我会为包含其行为的每个组创建一个模块,并将其包含在每个相关模型中.即使没有共享功能,执行此操作也可以让您快速查询模型的概念组.
我通过确保表格/模型在概念上按名称分组(几乎是1:1的表格 - 模型关系)来覆盖我的一个大型应用程序.例:
events event_types event_groups event_attendees etc...
这样,当我使用TextMate或其他任何东西时,模型文件通过alpha排序很好地组合在一起.我在这个应用程序中有80个模型,它运行良好,可以保持井井有条.
你绝对应该为每个表使用一个模型,以便利用所有的ActiveRecord魔法.
但您也可以使用模块和子目录将模型组合到命名空间中,以避免在模型目录中管理70个文件.
例如,您可以:
app/models/admin/user.rb app/models/admin/group.rb
对于模型Admin :: User和Admin :: Group,and
app/models/publishing/article.rb app/models/publishing/comment.rb
出版::文章和出版::评论
等等...