ミュージシャン、開発者、医師の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
問題は、この種のモデルの関係は、ポリモーフィックな関連付けのためにパフォーマンスに影響を与えるのか、それとも検討すべきより良い解決策があるのかということです。