2011-12-23 6 views
1

私は、ユーザーがページに残っているコメントを評価できるウェブサイトを持っています。各コメントに固有のIDが付いています(例:402934)。ユーザーがサムネイル/サムネイルのコメントをできるようにするには、サムとサムの数を記録する簡単なカウンターコードを作成する方法がわかります - しかし、どのように各ユーザがコメントを一度だけランク付けすることを確認することができます。私は行ごとにコメント番号を付けてデータベースを作成しようとしていました。その行には、それをランキングしたすべてのユーザーと、それをランキングしたすべてのユーザーの配列が含まれていましたが、一番いい方法。私の次の考えは、各ユーザのためのテーブルを持っていて、ユーザがランク付けしたすべてのコメントを表示する配列を持つことでした。それはおそらく...この方法は、(例えばコメントの6050本のランキング詩、ユーザーの150のランキングから確認したが、より良い方法があるように私はまだ感じる速く任意のアイデアを実行するのでしょうか?ユーザーが一度コメントを評価できるようにするPHP MySQL

+0

@ManseUKクッキーはユーザーが簡単に削除できます。あなたがコントロールするはるかに良い、より永久的なソリューションは、以下にrefpで説明されているデータベースソリューションです –

答えて

7

user_idcomment_idvote TINYINT(1)を持つ新しいテーブルを作成します。 voteインチ

1の値がvote0の値がダウンして親指で、親指である。

(comment_id, user_id)UNIQUE KEY制約を持っています。

上記の手順を実行すると、ユーザーが特定のコメントを投票したかどうかを簡単に確認できます(高速実行の場合など) INDEXuser_idに追加する必要があります。


あなたは、以下のように、user_comment_thumbsREPLACE INTOを使用することができ、ユーザー投票:ユーザーがすでにそうでない場合、新しいテーブルのエントリが更新されます投票をした場合

REPLACE INTO `user_comment_thumbs` (user_id,comment_id,vote) 
VALUES (@user_id, @comment_id, @vote); 

行が挿入されます。

+0

甘い:)私が必要としていただけ! –

+0

@refp素晴らしい答え! –

関連する問題