MySQLに階層データを保存する方法はいくつかあります。ビル・カーウィンのプレゼンテーション をご覧ください。 これは4つのオプションを示しています。
- 隣接リスト
- パスの列挙
- 入れ子集合
- クロージャーテーブル
隣接リストを使用しています 階層データを格納するためのモデルですが、残念ながらこれは最も難しい サブツリーのクエリ用に選択できるモデル。
オプションは次のとおりです。
- 別のモデルに変更します。
- クエリをnレベルの深さに制限します。
- ストアドプロシージャを使用して、再帰的にクエリを実行します。これについての詳細は、Quassnoiの一連の記事を参照してください-階層クエリMySQLで 。