這是我在社區中的第一篇文章,有一個問題:代表一個分類樹。多對多自引用ruby-on-rails
第一個解決方案:每個類別都有一個對其父類別的引用。 這個解決方案的問題是,當我想要一個類樹的子樹時,我不得不多次查詢數據庫,每個樹的每個級別(高度)都有一個查詢,我希望某些解決方案更加優化。
選擇的解決方案:類別(ID,名稱,描述)和CategoryxCategory(ancestor_id, descendant_id
) 所以建立一個子樹我只需要一個這樣的查詢,
select * from category a, categoryxcategory b.where b.ancestor_id = 1 and
b.descendant_id = a.id , gets all sub-categories of the category with id = 1.
我做這個在java中使用hibernate解決方案,但我不能在Rails中完成,我怎麼在遷移和ActiveRecord中指定這個?
非常感謝
其實我不能,因爲我想用db中的單個查詢構建一個子樹,在做這個解決方案時,我將不得不多次查詢數據庫以獲得高度> 2的子樹。 '試試這個寶石 –
只是爲了完成這個話題,真正幫助我的是[Ancestry](http://rubygems.org/gems/ancestry),它正是我想要的。感謝您的幫助 –