にはそのようなテーブルがあります。id は分類の ID、name は分類の名前、pid は上位の分類の ID です。レベル分類。
カテゴリ ID があり、プログラムはその上位の上位の上位のカテゴリ ID を見つける必要があります。簡単に言うと、最上位のカテゴリの ID を見つけることです。
たとえば、「Fresh Fruit」の ID は 13 で、対応する親カテゴリ ID は 5 で、5 の親 ID は 1 です。1 には親カテゴリがなく、これが最上位のカテゴリです。
昔、私が若くて無知だった頃、私は常に再帰を使用して検索し、結果をキャッシュしてパフォーマンスの問題を解決することを考えていました。
その後、テーブル全体をキャッシュして再帰的に検索してみました。
あとは…無限分類に遭遇する可能性は低そうです…
最近、同僚が私に、この問題を「エレガントに」解決する方法を尋ねました。
そこで私はアイデアを思いつき、次の解決策を思いつきました:
言わざるを得ません:とてもエレガントです!私自身も感心しましたし、同僚たちも地に伏して号泣しました。
彼はループ、判定、再帰を繰り返すコードを数十行書いていたので、それを 2 行のコードに置き換えました...