場所のデータベースを含む Web サイトがあります。各場所で、ユーザーは次のいずれかのアクションを記録できます。
- VIEW - プロフィールを見る
- 評価 - 星 1 ~ 5 段階で評価してください
- REVIEW - レビューする
- COMPLETED - 彼らがそこにいたことをマークします
- WISH LIST - 彼らがそこに行きたいことをマークします
- FAVORITE - お気に入りの 1 つであることをマークします。
場所のデータベース テーブルには、各場所に、上記の各アクションが実行された回数のカウントと、ユーザーによる平均評価が含まれています。
- ビュー
- 評価
- avg_rating
- 完了
- ウィッシュリスト
- お気に入り
私たちができるようにしたいのは、上記の情報を使用して上位の場所のリストを生成することです。理想的には、比較的単純な SQL クエリを使用してこのリストを生成できるようにする必要があります。追加のフィールドを計算したり、順位を互いに比較したりするための面倒な作業は必要ありません。そうは言っても、約 50,000 の場所しかないため、夜間の cron ジョブを実行して、上位の場所の全体的な結果に有意な差が生じる場合は、さまざまなカテゴリのランキングなどのフィールドを計算できます。
最良の場所を一番上にバブリングすることについてどのように考えるべきか、どの基準をより重視するべきか、そしてその情報を考慮して、MySQL クエリがどのようになる必要があるかを提案していただければ幸いです。上位 10 か所を選択します。
1 つ注意すべき点は、現時点では人気のある場所の最新性にはあまり関心がないということです。つまり、集計情報を見ることは問題なく、より最近のデータに重みを付ける必要はありません。
あなたの助けとアドバイスを前もってありがとう!