내가있어 이러한 테이블 : 기본적으로다중 블로그 사이트 모델링 방법은 무엇입니까?
**Sites**
:has_many :blogs
:has_many :pages
**Blogs**
:belongs_to :site
**Pages**
:belongs_to :site
:belongs_to :blog
은, 나도 같은 경로와 블로그 사이트와 관련된 또는 관련 페이지를 만들 수 있도록하려면 :
/blogs/1/pages/1
/sites/1/pages/2
나의 현재 설정으로, 내 페이지 테이블 blog_id 및 사이트 ID에 대한 foreign_key있다 - 난 그냥이 일을 생각했다 : 페이지가 fo를 작성하는 경우
을 (블로그에 속하지 않는다는 의미), blog_id =를 NULL로 설정하고 이에 따라 site_id를 설정하십시오.
그러나 블로그 (이미 사이트에 속한)에 대해 페이지를 작성하는 경우 내가 사이트 페이지 목록을 원하는 경우 관련 사이트 ID 및
을 blog_id은 그런 : 난 그냥 모든 NULL blog_ids의 페이지 테이블을 조회 할 수 있습니다, 그리고 페이지를 블로그 싶은 경우에, 나는과의 관계를 통해 얻을 수 있습니다 이미 블로그.
업데이트 : "polymorphic associations"를 사용하여 제안 된 답변을 수락했으나 단일 테이블 상속을 사용하여이 작업을 수행 할 수도 있습니까? 그렇다면 어떤 방법이 더 좋습니까?
감사합니다.