0

PHP サイトの 1 つで、サイトのすべての検索結果 (クエリ) から除外する特定の行を選択する機能をユーザーに提供する必要があります。

除外をどのように処理する必要がありますか?

1) ユーザーがクエリを実行してログイン (または更新) するたびに、除外された行のリストを事前にコンパイルし、リストをセッション変数に保存して$query .= " AND userid NOT IN ({$_SESSION['ExclusionList']})"から、サイトのすべての検索クエリに単純に追加します。

また

$query .= " AND userid NOT IN (SELECT userid FROM Excluded WHERE excludedBy = '$currentUserID')"2)サイト上のすべての検索クエリに追加するだけで、常にオンザフライで各クエリに直接コンパイルします か?

方法 1) は、ユーザーがサイトで検索クエリを実行するたびに基本的にリストをコンパイルするのではなく、ユーザーがログインしたとき (またはリストを更新するたび) に 1 回だけリストをコンパイルするので、より効率的です。

あなたは何を提案し、その理由は何ですか?

4

1 に答える 1

1

$_SESSION技術的には、これは値の「キャッシュ」と呼ばれ、リストが大きくなりすぎたり、重量が重くなったりしない限り、悪い考えではありません。

副選択を行うと、特に大規模なレコードのセットでは非常にコストがかかる可能性があるため、通常はキャッシュしたほうがよいでしょう。

于 2012-10-03T16:35:29.510 に答える