ホームページ >バックエンド開発 >PHPチュートリアル >分類ディレクトリの階層情報をできるだけ効率的にクエリするにはどうすればよいでしょうか?
簡単な記事分類表があります。主な構造は次のとおりです
ID | 保護者ID | タイトル |
---|---|---|
1 | 0 | 全商品 |
2 | 1 | PHP |
3 | 1 | Mysql |
4 | 2 | PHP について考える |
...
など。非常に一般的なディレクトリ構造であるはずです。つまり、
の第 3 レベルのディレクトリは次のようになります 所有项目
为一级、PHP
和Mysql
为其二级、ThinkPHP
为PHP
。
id=4
だけを知っているとします。たとえば、すべてのプロジェクト>>ThinkPHP code> をリストするにはどうすればよいですか。 <code>id=4
这么一个数据,请问我要如何列出例如所有项目 >> PHP >> ThinkPHP
このようなパンくずリストのナビゲーションはどうですか?
同様の質問への回答が見つかりませんでした。キーワードの使用方法が不十分だったのかもしれません。最後に質問せざるを得ませんが、温かいアドバイスをよろしくお願いします
保護者ID | タイトル | |
---|---|---|
0 | 全商品 | |
1 | PHP | |
1 | Mysql | |
2 | PHP について考える |
など。非常に一般的なディレクトリ構造であるはずです。つまり、
の第 3 レベルのディレクトリは次のようになります
。
所有项目
为一级、PHP
和Mysql
为其二级、ThinkPHP
为PHP
次に、データ id=4
だけを知っているとします。たとえば、
すべてのプロジェクト>>ThinkPHP code> をリストするにはどうすればよいですか。 <p>このようなパンくずリストのナビゲーションはどうですか? <code>id=4
这么一个数据,请问我要如何列出例如所有项目 >> PHP >> ThinkPHP
最も重要なアイデアは、新しいサブクラスを追加するときに親クラスのデータを保存することです。これは静的キャッシュの原理と似ています。
パンくずリスト (4 から 2 から 1) を使用する必要があるため、クエリと抽出のプロセスが必要になるため、他に方法はありません。
それは再帰を使用するか反復を使用するかによって決まります
カテゴリのレベル数が固定されている場合は、レベルごとに指定された SQL を記述して、コード レベルでのクエリのループによりパフォーマンスが無駄になりますが、コードの実装はシンプルで柔軟です
。
まず、Web サイトの階層ディレクトリ データを決定できます。これはそれほど多くはありません
データベースからすべてのデータを完全に取り出すことができます
それを再帰的に実行します。コードレベルでの操作によりデータベースクエリを削減します。
効率的な方法はあまり多くありませんが、キャッシュはその 1 つであるべきです
お誘いありがとうございます。一般に、この種の分類に対する変更は非常に小さく、
を使用してそれを走査し、後で使用するためにキャッシュすることができます。普段はこんな感じで使っています