私は、ユーザーが賛成または反対の投票が可能な投稿を送信するWebサイトを持っています。
現時点では、すべての投稿から獲得したユーザーの合計ポイントは保存されません。
これを行うための最良/一般的な方法は何ですか?RedditやStackOverflowのようなサイトはどのようにそれを行いますか?
誰かが投稿に投票するたびに、合計ユーザーポイントを加算および減算する必要があります。
これは毎回更新する必要があります。ユーザーエクスペリエンスを向上させるためにajaxを使用してください。基本的なチュートリアルは次のとおりですhttp://www.w3schools.com/php/php_ajax_poll.asp
それは多くの方法で行うことができます1つはHabeebによって述べられていますしかし、stackoverflowのように賛成したすべての情報を保存したい場合は、2つのテーブルを作成して投稿のIDを保存し、もう1つは投稿に賛成したユーザーを保存しますテーブルは
POST Upvote
Id POST Id User_id
すべての投稿に対するユーザーごとの投票の合計の結果をキャッシュし、ユーザーが新しい投票を獲得したときに各ユーザーのキャッシュを無効にするか、データベースに合計数を保存して、賛成または反対の投票が実行されるようにすることができます。合計も更新するトランザクションとして。
これをキャッシュを使用して行うか、MySQLで追加のテーブルを使用して行うか(テーブルに配置することはお勧めしませんusers
)は、サイトの規模と投票で何をしたいかによって異なります。