テーブルを使用して、さまざまな投票でさまざまなユーザーの投票を保存しています。
テーブルは以下の構造になっています。
ID | poll_id | 選ぶ | IPアドレス id : 自動インクリメント poll_id : (STRING UNIQUE) 特定の投票で一意 opt : (STRING) ユーザーが選択したオプション ip_address: (STRING UNIQUE) ユーザーの IP アドレス
これは私のクエリです
INSERT OR REPLACE INTO tbl_poll(id,poll_id,opt,ip_addr) VALUES (null,'$poll_id','$opt','$ip_addr')
(Here $poll_id, $opt and $ip_addr are php variables which holds the respective values)
さて、シナリオはこんな感じです。
ユーザー「A」は、poll_id「mypoll」のオプション 2 に投票します。クエリは完全に機能します。(挿入します)
ユーザー「A」は気が変わって、poll_id「mypoll」のオプション 5 に投票します。クエリは完全に機能します。(置き換えます)
しかし、ユーザー「A」が poll_id「yourpoll」のオプション 4 に投票した場合。 クエリは失敗します (置換を行います)が、poll_id 'yourpoll' を持つ新しいレコードを挿入する必要があります
私が思うに、それはのみのunqiue
制約を考慮しますが、ip_address
poll_id