0

我正在运行一个带有 MySQL DB 的 Rails 3.2 应用程序,我想构建一个模型,它是一种动态集合,例如我将调用它Album

专辑应该包含另一个模型的多个实例,例如我称它们为Items 但我不想仅将它们与一对多连接表静态关联。

还应该可以定义标准,例如:

  • Album包含Item从开始日期到结束日期的 s
  • Album包含Items,其中标志 XY 为“foo”
  • ..

这些标准/参数应永久存储在数据库中。Items不应链接一次,Item如果与参数匹配,则应将新s附加到相册

参数的数量应该是灵活的,例如一个专辑的多个时间范围应该是可能的。所以我想了一个额外的表来存储专辑和匹配的时间范围之间的关系。

什么是最好/最高效的方式来实现这种方式并Album通过简单的album.items调用使所有项目都可以访问?

我应该如何/在哪里存储动态链接的参数?

4

1 回答 1

1

我认为您可以创建一个ItemSet类,因为每个类都Album可以有多组标准。ItemSet可以有使用单表继承的各种子类(或者您可以通过另一种方式实现这种行为;请参见此处),并且您可以根据每个子类的类型(基于日期、标志集等)items在每个子类中定义方法ItemSet.)。album.items将是items每个 中的并集album.item_sets

于 2012-04-07T05:40:51.937 回答