我已经为我的网站建立了自己的照片库系统,但它与 Flickr 几乎是 1:1 绑定的,现在,这本身并不是一个大问题,但我现在想对其进行一些重构,这是我想要的第一件事尝试是看看我是否可以将一些现有的模型合并为一个。
目前,我有以下型号:
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
这一切都有效,但我想从这里的人那里得到一些想法,以了解你对我应该如何解决这个问题的看法。
例如,在我看来(无论如何),我可以将 Collections 折叠到相册中,然后作为第二件事,将 Photo_sizes 折叠到 Photos 中。
我感到困惑的是,这些关系将如何在合并的收藏/专辑模型中发挥作用,因为专辑需要能够拥有子专辑,但一个也应该是顶级收藏,而且还应该能够拥有多个相片。
包含其他相册的相册也不会有照片。所以一张专辑要么有儿童专辑,要么有一组照片。
关于我该如何解决这个问题的任何想法?