ミリ秒を測定していて、システムのディスクIOが極端に遅くない場合は、オプション2の方がパフォーマンスが向上します。 しかし 、実行時間のわずかな増加について話しています。すでにDBにクエリを実行してニュース項目を取得しているため、カテゴリ名を同時に取得するように高度に最適化されます。 category-name-idのマッピングテーブルを追加します カテゴリ名へ 。そして、ニュースアイテムを入手するときにそれに参加してください。
柔軟性の観点と、考えられるエラーの原因をできるだけ多く排除するという観点から、私も上記の考えを採用します。システムに柔軟性を追加し、すべてのデータを1か所に保持するためです。カテゴリの名前を変更するには、php構成ファイルを編集する代わりに、データベースの1つの列を編集する必要があります。オプション1を使用した場合は、すべてのニュースレコードを更新する必要があります。
したがって、最善のアドバイスは、 category-name-idを含むテーブルを追加することです。 カテゴリ名へ マッピングしてから、ニュースアイテムにそれらが属するカテゴリのIDを含めます。
パフォーマンスを向上させるために、既存のカテゴリやその他のデータについて取得したデータをキャッシュできるため、DBでその情報を常にポーリングする必要はありません。
例えば。参加する代わりに、上記のカテゴリテーブルからすべてのカテゴリを取得できます。アプリケーションにキャッシュし、キャッシュが無効になったときにのみ取得します。つまり、タイムアウトが発生するか、データベース内のデータが操作されます。