1

PHPで質問投稿Webアプリケーションを開発しています。

ログインすると、特定の質問をクリックすると、新しいページが開き、その特定の質問を気に入るオプションがあります。すべての「いいね」は、テーブル「質問」のフィールド評価を増やします

今私がやりたいことは、ユーザーごとに 1 つのようなものだけを有効にすることです。それはどのように行われますか?:/

これらは私のテーブルです。

質問:

qID int(3)           
qTitle  varchar(200)             
userID  int(2)          users -> userID (foreign key)    
qBody   text                 
rating  int(2)

ユーザー

userID  int(2)  (PRIMARY KEY)        
username    varchar(40)          
fname   varchar(40)          
lname   varchar(40)          
password    varchar(40)          
email   varchar(50)
4

2 に答える 2

4

userIDテーブルの記録と、2 つの列に対する一意の制約が必要ですqID(複合主キーを介して)。

ratingパフォーマンス上の理由から、このテーブルへの挿入が成功した後も (おそらくトリガーを介して) 列を保持し、非正規化フィールドとしてインクリメントすることができます。

于 2011-02-12T13:16:42.517 に答える
3

3 番目のテーブルを使用します。

いいね

userID  int(2)
qID int(2)

ユーザーが質問に「いいね」すると、そのテーブルに行を追加します。「いいね」を許可する前に、まずそのテーブルに一致する行がないことを確認してください。

于 2011-02-12T13:17:37.373 に答える