我有這些表:如何建模多博客網站?
**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和SITE_ID一個foreign_key - 我只是想這樣做的:如果正在FO創建頁面
ra網站(意思是它不屬於博客),然後將blog_id =設置爲NULL,但是相應地設置site_id
但是,如果正在爲博客創建頁面(已經屬於某個站點)相關SITE_ID和blog_id
然後,如果我想網站頁面的列表:我可以只查詢頁面表的所有NULL blog_ids,如果我想博客網頁,我會通過與關係讓他們博客已經。
更新:我接受了下面的建議使用「多態關聯」的答案,但這也可以使用單表繼承?如果是這樣,哪種方法更好?
謝謝。