我为自己的网站建立了自己的照片库系统,但它与Flickr的关系非常紧密,现在,这本身并不是一个大问题,但我现在想把它重构一下,第一次我想尝试的是看看我是否可以将一些现有的模型合并为一个。
目前,我有以下型号:
Collection
Album
Photo
Photo-size
以下是各自的完整关联:
Collection
has_many :children, class_name: "Collection", foreign_key: "parent_id"
belongs_to :parent, class_name: "Collection", foreign_key: "parent_id"
has_many :albums
Album
has_many :photos, :dependent => :destroy
belongs_to :collection
Photo
belongs_to :album
has_many :photo_sizes, :dependent => :destroy
Photo_size
belongs_to :photo
这一切都有效,但我想从这里的人们那里得到一些想法,找出你对我应该采取的方法的看法。
例如,似乎在我的脑海中(无论如何),我可以将收藏集折叠到专辑中,然后作为次要内容,将Photo_sizes折叠成照片。
我感到困惑的是关系在合并的收藏/专辑模型中如何运作,因为专辑需要能够拥有儿童专辑,但其中一个也应该是顶级集合,而且还应该能够拥有一些照片。
持有其他专辑的专辑也不会有照片。所以EITHER的专辑有儿童专辑或一组照片。
关于如何解决这个问题的任何想法?