我希望了解Rails应用程序的最佳关系模型。
听起来单表继承会在某种程度上“起作用”,但当我考虑子模型在“模式”和字段方面的变化时,并不是真的。
情况,我会有很多不同类型的Appraisal
,我希望能够灵活地执行Appraisals.first.type = CarAppraisal
或Appraisals.count = 142
之类的内容,count
}将是Appraisal
的多个不同子模型类的总和(例如,HouseAppraisal,CatAppraisal)。
主模型类型:Appraisal
class Appraisal < Application Record
has_one :car_appraisals
has_one :house_appraisals
has_one :life_appraisals
#insert other has_one _appraisals I might add in the future
end
儿童模型类型:House Appraisal
class HouseAppraisal < Application Record
belongs_to :appraisal
end
儿童模型类型:Car Appraisal
class CarAppraisal < Application Record
belongs_to :appraisal
end
等等
我考虑的内容
has_many, through: xxx
的东西,但是我无法确定这可能会如何运作?has_one
放在了家长评估模型中,这并不完全正确,因为它暗示它会包含其中一个,当事实上它只是其中之一。Appraisal
模型映射到ActiveRecord(Postgres)和映射到MongoId(MongoDB)的子模型(例如PetAppraisal
),因为它们的变化很大。架构,但我不认为在整体ERD方面真的应该改变很多。