模型设计 - 这样做的最佳方法是什么?

时间:2012-01-09 18:07:12

标签: ruby-on-rails ruby-on-rails-3

我有这个应用程序我在Rails 3.1中编写,我想知道模拟这个的最佳方法。

如果我用“标题”创建一个名为“电影”的模型,然后为每个“电影资产”创建一个新模型,例如“海报,预告片,筛选器”等,并将其与“电影”联系起来,那会是最好的吗? “通过协会?或者,如果我只是将其创建为一个并且将每个资产的关联转换为“电影”,那么它会是最好的吗?

model question

我的假设是将其作为一个,因为它将删除FK的所有开销并加入以获取与电影相关的数据,但我正在寻找意见/建议。感谢

2 个答案:

答案 0 :(得分:2)

电影可以有三种类型的属性(列)。

  1. 其中只有一个值,并且存在于每个电影中,例如标题,年份,官方预告片等
    • 将它们保存在电影桌中。
  2. 其中只有一个值,但在少数电影中出现,例如奥斯卡颁奖典礼。
    • 将它们保存在单独的表格中,并使用 has_one + belongs_to 关联。
  3. 具有多个值,例如拖车
    • 将它们保存在单独的表格中,并使用 has_many + belongs_to 关联。
  4. 更多建议:

    • 对于许多键值属性,使用序列化更容易使用一个json / yaml列,而不是为每个键创建一列。
    • 不要将图像存储在数据库中,将它们保存在文件系统或云存储中。

答案 1 :(得分:0)

您可以按照自己想要的顺序创建模型,因为您必须填写两个模型才能创建唯一关联(例如belongs_tohas_many)所以我认为这并不重要!