説明:
作成した Web アプリにコメント/返信機能を作成しています。これらのコメントもリンクしたいという投稿があります。スパムを減らし、コミュニティへの参加を促すために、コメント/返信ごとに投票システムを実装したいと考えています。
問題:
データベースのセットアップ方法と、賛成票/反対票の表示方法を知っています。私が何をすべきかわからない唯一のことは、投票を維持することです...ユーザーがページを更新しても投票されています。ユーザーが 1 つの投稿に対して複数回投票できるようにしたくありません。このサイトでの投票のようなもので、黄色の賛成票ですでに投票したことが追跡されます。
私が考えたこと:
- user_id を追加して、投稿 ID を Cookie に配置します。Cookie を簡単にチェックするだけで、ユーザーが再び投票するのを止めることができます。
- テーブルの投稿IDに一意の制約を配置します...しかし、これは私が混乱する場所です。投票済みの投稿用に別のテーブルを用意する必要がありますか? ここにデータベーススキーマのアイデア(私が思う):https://stackoverflow.com/a/12350981/185672
- すべてのIDをセッション配列に保持し、投票されたすべてのIDに対してチェックします...しかし、それは巨大になります。
- db 呼び出しの数を減らすための Cookie とデータベースの組み合わせ。
将来的には、1 人のユーザーによって数千の投票が行われる可能性があります。
編集:
結果をデータベースに保存することは必須であることがわかりました。ユーザーが何千回も電話をかけずに有効な投票権限を持っているかどうか、すべての返信/コメントを確認するにはどうすればよいですか?
資力:
さらにスパムの問題を解決しましたが、最初の質問には答えませんでした: https://stackoverflow.com/a/2333085/185672
投票をカウントする方法を説明するが、「賛成票」をチェックしたままにしない古いソリューション。 http://www.9lessons.info/2009/08/vote-with-jquery-ajax-and-php.html
ボーナス質問:
コメント システム (投票付き) をビルド済みのアプリに同期できる優れたスクリプトを知っている場合は?
また、重複を見つけようとしましたが、できません。