协会人员和公司通过就业和面试是否是不良做法? 特别是为什么? 这个答案是否适用于一般的数据库,而不仅仅是铁路?
示例:
employment.rb
class Employment < ActiveRecord::Base
belongs_to :people
belongs_to :companies
end
interview.rb
class Interview < ActiveRecord::Base
belongs_to :people
belongs_to :companies
end
person.rb
class Person < ActiveRecord::Base
has_many :employments
has_many :interviews
has_many :companies, through: :employments
has_many :companies, through: :interviews
end
company.rb
class Company < ActiveRecord::Base
has_many :employments
has_many :interviews
has_many :companies, through: :employments
has_many :companies, through: :interviews
end
个人和公司通过就业相关联,但也通过面试冗余。
答案 0 :(得分:1)
让两个模型具有多个关联,包括同一类型的多个关联,没有任何问题。你会想给这些协会提供唯一的名字 - 但是当你打电话给(例如)@person.companies
时,你就不会知道你会得到什么 - 公司通过就业,或公司通过面试。
我相信这个问题有一个不错的例子:ruby on rails has_many :through association which has two columns with same model