、、、の3つのテーブルがcategories
ありtags
ますtaggings
。カテゴリテーブルは、関連する列id
、、、、およびを使用して、ネストされたセットの形式でまとめられます。タグにはとがあります。タグ付けにはとがあり、これはを参照します。lft
rgt
parent_id
id
name
tag_id
taggable_id
categories.id
可能であれば、フィールドに返される1つのクエリ、たとえばtag_list
、カテゴリとそのすべての祖先のタグを含む文字列が必要です。したがって、次のスキーマが与えられます。
カテゴリ
id | parent_id | lft | rgt
1 | NULL | 1 | 6
2 | 1 | 2 | 5
3 | 2 | 3 | 4
タグ
id | name
1 | cool
2 | rad
3 | soup
タグ付け
id | tag_id | taggable_id
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
SELECT ??? FROM categories
クエリが返されるようにしたい:
id | tag_list
1 | cool
2 | rad cool
3 | rad cool soup
背景情報:私はRailsを実行しており、検索にはThinking Sphinxを使用し、ネストにはawesome_nested_setを使用しています。と呼ばれるテーブルがありcategories
、多くtags
のhas_many_through
関係があります。