我注意到我可能已经创建了一个关系问题。
我从一个照片模型开始。管理员可以上传照片,它们将存在于网站上。
在后来的迭代中,相册被添加到代码库中,以便可以在自己的页面上组织一组照片。
Album
has_many :photos, inverse_of: :album
Photo
belongs_to :album, inverse_of: :photo
在玩了上面的之后,我注意到一张照片只能属于一个相册。没关系。
现在出现了一个新问题。我想添加工作人员的照片,他们也是他们自己的模特。
我的照片模型中还有一些特殊的逻辑来处理使用特定的上传服务(文件选择器)。
Staff
field :name, type: String
我怎样才能让员工拥有自己的照片?我应该为非规范化创建一个新模型 StaffPhoto 吗?我正在考虑将照片嵌入或属于员工,但我不确定同时属于专辑和员工是否有意义。现在对我来说最有意义的事情是创建一个单独的模型并将上传服务逻辑抽象到一个模块中并将其包含在两者中。但是我可能是错的。重要的部分是 Photo 的整体将单独存在,或者是相册的一部分,或者是工作人员的一部分(多张照片)。
关于如何建模的任何建议?