オブジェクトを複数のツリーに分類して、その特性を反映し、ナビゲーションを構築したいと考えています。
したがって、次のツリーが与えられます。
Category1
-Category-1-1
-Category-1-2
Category2
-Category-2-1
-Category-2-2
--Category-2-2-1
オブジェクトは、たとえば、カテゴリ 1-2 とカテゴリ 2-2-1 の両方に属することができます。
目標は、データベースからすべてのオブジェクトをフェッチできるようにすることです
- 特定のカテゴリに属する
- 特定のカテゴリまたはその子孫に属する
より実用的な例:
カテゴリには、「ツール > ガーデニング ツール > カッター」の階層がある場合があります。
第 2 のカテゴリ: 「硬い物体 > 金属の物体 > 小さい金属の物体」
オブジェクト「プルーナー」は、「カッター」および「小さな金属製オブジェクト」に属するものとして分類されます。
できるようになりたい
- すべての「ガーデニング ツール」を取得 -> 「剪定ばさみ」
- 「ガーデニング ツール」のすべてのカテゴリの子を取得 -> 「カッター」
- すべての「ハード オブジェクト」を取得 -> 「プルーナー」
- 「Cutters」でもあるすべての「Hard objects」を取得 -> 「Pruners」
- 「カッター」でもあるすべての「ソフト オブジェクト」を取得します -> [] ポインターはありますか? closure_tree、awesome_nested_sets などを簡単に調べましたが、それらが適切に一致するかどうかはわかりません。