다음과 같은 설계 방법을 찾고 있습니다. 나는 세 가지 모델 트리 메뉴를 생성하는 데 사용됩니다 [지역, 그룹, 항목] (조상 보석)외래 키 공유
class Region < ActiveRecord::Base
has_many :groups
has_many :items
end
class Group < ActiveRecord::Base
belongs_to :region
has_many :items
has_ancestry
end
class Item < ActiveRecord::Base
belongs_to :region
belongs_to :group
end
이 내가이 건물의 목적을 위해 모두 그룹과 항목에 할당 된 영역을 가지고 볼 수 있듯이 menutree : Region => Group (s) => Item (s).
항목 영역은 응용 프로그램 전체에서 광범위하게 사용되지만 그룹의 영역은 메뉴를 렌더링 할 때만 사용됩니다.
그룹의 지역이 해당 지역의 지역 또는 실제로 그 자손과 다를 수 있다는 점이 마음에 들지 않습니다. 항목이 그룹을 가질 수 없거나 그룹이 항목의 고유 한 영역에서 해당 지역을 상속받을 수 없기 때문에 그룹의 항목에 대한 지역을 상속하는 것이 적절하지 않음을 확신했습니다 (다른 지역의 항목이 포함되어 있기 때문에 동일한 그룹에 의해 동일한 그룹이 다른 지역에서 두 번 나타날 것임)
누구나 다른 접근법을 제안 할 수 있습니까?