以下の内容は抜粋です: トピックテーブルと返信テーブルを設計する場合、通常のアプローチは次のようになります。
このように、トピック リストを取得するときは、ページング アルゴリズムを直接使用してトピックを抽出します。また、特定の投稿を表示するときは、トピックと投稿へのリンクを設定する必要があります。
この設計の欠点は次のとおりです: 1. トピック テーブルにはコンテンツ コンテンツが格納されるため、その容量が非常に大きくなり、大きなテーブルをページングするとパフォーマンスが非常に遅くなります。
2. Posts コンテンツを表示するときに結合操作が実行され、パフォーマンスが消費されます。
Discuz のアプローチは次のように設計されています。
トピック内のコンテンツを投稿に分割すると同時に、トピックのトピック投稿も返信として投稿に配置されるため、上で挙げた 2 つの問題が解決されます。これは、パフォーマンスの向上と引き換えにデータベース設計パラダイムに違反する典型的な例です。
上記は、Discuz フレンドリー リンクのコンテンツを含む、PHP の Discuz フレンドリー リンクのデザイン テーブルと返信テーブルを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。