2つのテーブルがあります。
表A:曲のリスト、曲のアートワーク、mp3リンク、タグなどが含まれています。
表B:登録済みのユーザー情報、ユーザーID、ユーザー名などが含まれています。
曲に星評価システムを追加しようとしています。登録ユーザーは、曲ごとに1回だけ投票できるようにしたいと思います。
したがって、私の計画は当初、3番目のテーブルを作成し、JOINを使用することでした。
表C:songID、合計スコア(投票されたすべての投票の合計)、vote_count(投票数)を含み、jQueryでクライアント側の計算を実行して平均投票を返します。
非常に大きなデータセットを処理するため、これがパフォーマンスに最適であると考えました。
もちろん、この方法を使用すると、ユーザーが何度でも投票することを防ぐことはできません。
したがって、私の質問は、これがプロジェクトの鍵であるため、曲自体のフィルタリング/ソートのパフォーマンスを低下させることなく、不正行為(つまり、表Cの投票者のuserIDの保存とチェック)から保護するためにどのデータベース設定が最適であるかということです。
このリクエストを明確にしたことを願っています。そうでない場合はお詫び申し上げます。