我正在使用MySQL DB运行Rails 3.2应用程序,我想构建一个动态集合的模型,例如我将其称为Album
。
一个专辑应该包含另一个模型的多个实例,例如我称之为Item
,但我不想将它们静态地与一对多连接表联系起来。
也应该可以定义如下标准:
Album
包含从开始日期到结束日期的Item
Album
包含Item
s,其中标志XY为“foo”这些标准/参数应该永久存储在数据库中。 Item
不应该被链接一次,如果新的Item
与参数匹配,则应将Album
附加到相册
参数数量应该是灵活的,例如,应该可以有多个时间范围的相册。所以我想一个额外的表来存储相册和匹配的时间范围之间的关系。
实现此方式的最佳/最佳效果方式是什么?通过简单的album.items
调用使{{1}}中的所有项目都可以访问?
我应该如何/在哪里存储动态链接的参数?
答案 0 :(得分:1)
我认为你可以创建一个ItemSet
类,因为每个Album
可以有多套标准。 ItemSet
可以使用单表继承来使用各种子类(或者你可以用另一种方式实现这种行为;参见here),你可以在每个子类中定义items
方法,具体取决于它是哪种ItemSet
(基于日期,标志集等)。 album.items
将是items
中每个album.item_sets
的联合。