1

私は記事のあるページに取り組んでいます。各記事に投票できます。すべての記事と平均以上の投票記事を別々のページに表示したい。私の現在のシナリオは次のようなものです:

//For get all articles
GET ALL RECORDS FROM ARTICLES TABLE

//For above average articles
GET ALL RECORDS WITH VOTE ABOVE
    GET AVERAGE VOTE VALUE FROM ARTICLES TABLE
FROM ARTICLES TABLE

これは非常に非効率的です。平均投票数を変更する 2 つのイベントがあります。

  • 誰かが記事に投票しました
  • 誰かが記事を書いた

リクエストごとにデータベースにクエリを実行せずに平均投票値を追跡する方法はありますか? 投票数と記事数の状態を保存する必要があると思います。これらの 2 つの変数をファイルに書き込む必要がありますが、これは安全ですか?

4

1 に答える 1

1

データベースを意図したとおりに使用するだけで、得られるのと同じくらい効率的です。キャッシュを使用するよりもデータベース トラフィックを削減したい場合 ( PHP キャッシュ手法の選択: ファイルへの出力キャッシュ vs. オペコード キャッシュ) は、機能するものを再構築して不要な複雑さを追加しないでください。

PHPには、リクエスト間で永続的な静的変数がありません。これにより、問題に対する明白で単純な解決策(実際には問題はありませんが、認識された非効率性)が不可能になります。変数をファイルにシリアライズし、リクエストごとにそのファイルを読み取らなければならないことは、適切な方法ではありません。ファイル システム IO は、最も効率の悪い構造です。

于 2013-02-01T13:24:21.917 に答える