假设我有 3 个模型音乐家、开发人员和医生,每个人都有一些共同的属性,例如姓名、姓氏、生日和电子邮件,但他们有一些特定的属性,例如音乐家(乐器、乐队)、开发人员(语言、SO)和医生(执照、诊所)。
我的方法是这样的:
class Person < ActiveRecord::Base
belongs_to :general, :polymorphic => true
end
class Musician < ActiveRecord::Base
has_one :person, :as => general
end
class Developer < ActiveRecord::Base
has_one :person, :as => general
end
class Doctor < ActiveRecord::Base
has_one :person, :as => general
end
问题是,这种模型关系会因为多态关联而影响性能?还是有更好的解决方案可以考虑?