MySQL で階層データを操作するには、次の 2 つの方法があります。
- 隣接リスト モデル
- 入れ子集合モデル
隣接リスト モデルの主な問題は、階層のパスを取得するためにノードごとに 1 つのクエリを実行する必要があることです。
ネストされたセット モデルでは、この問題は存在しませんが、追加されたノードごとに、他のすべての左右の値に MySQL UPDATE を与える必要があります。
私の階層データは、e コマースの製品カテゴリなどの静的データではありません。ユーザーを階層順に常時登録しています。
私のアプリケーションでは、多くの定数ユーザー登録がありますが、階層内の最初のノードに到達するまでの階層パスも取得する必要があります。
私の状況を分析すると、2 つの選択肢のどちらが私のアプリケーションに最適でしょうか?