构建这些关系的最佳方法是什么?到HABTM与否?

时间:2010-10-14 07:56:19

标签: ruby-on-rails data-modeling has-and-belongs-to-many

正在寻找关于如何在我正在制作的应用中构建关系的一些建议。我有以下型号:

activity # golf, karaoke
event    # golf competition followed by all-night karaoke boat party
post     # write-up of the golf and karaoke event mentioned above
gallery  # photos from the golf and karaoke event

问题1

  • 每个活动可以涉及多个活动
  • 每个活动都可以与多个活动相关联

我是否需要在活动和活动之间使用 habtm


问题2

  • 每个活动都可以在多个博文中报告
  • 帖子可以报告多个活动

我应该在事件和帖子之间使用 habtm 吗?


问题3

  • 每个帖子可以包含来自多个图库的图片
  • 图库可以包含在多个帖子中

这是另一个 habtm 吗?


问题4 - 可以想象,管理员可能希望将一组或多组照片与一个或多个事件相关联,而无需创建博客文章以将所有内容组合在一起。在画廊和活动之间宣布 habtm 关系是否明智?


对于奖励积分:具有这么多habtm的应用程序是否可能比强制执行同一模型之间的一对多关系的应用程序慢?应用程序在变得过于复杂之前,是否存在建议的限制?

提前致谢

1 个答案:

答案 0 :(得分:1)

所有案件都需要habtm。它来自你的specyfication。你只能怀疑自己是否真的需要这种关系。看看http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it“YAGNI”。 我不会在开发过程中考虑速度。当你的应用程序运行缓慢时,请添加缓存。