私はユーザーが他のユーザーを検索できるranking
モジュールを持っています。結果は表に表示され、結果ごとにユーザーの現在のランキングの位置も表示します。したがって、たとえば、dav
を検索するときに、結果は次のようになります。検索結果のユーザーランキングを計算する[Laravel]
-- Position -- Points -- Name --
30 2345 Dave
105 1650 Davy
965 895 Superdavy
1949 35 Dave123
私の質問は:位置を計算するための最良の方法だろうか?位置は、ユーザーを注文することによって計算されます。points
私は
$results = User::where('name', 'LIKE', "%$query%")->orderBy('points')->paginate(25);
を持つすべてのユーザーを取得することができますが、結果を通して、私ループとは、ランキングの位置を計算するために、ユーザーごとにデータベースに問い合わせる必要がありますか?それとも簡単な方法がありますか?検索結果に50件の検索結果が含まれていて、数秒以内に複数の検索が行われている場合、多くのデータベースクエリが発生します。
ランク付け番号はどこに格納されているのか、どのように計算するのかを示してください。 –
おっと、申し訳ありませんが、私は答えを更新 – Jordy
位置欄は冗長ではありませんか? –