需要查看用戶是否已經(jīng)投票,如果已經(jīng)投票,則不插入數(shù)據(jù),如果未投票,則插入數(shù)據(jù)。在并發(fā)的條件下,有可能用戶在同一時刻都查詢到未投票,然后導致插入多條數(shù)據(jù)。針對這樣的情況,有什么好的解決方案么?目前所知,用數(shù)據(jù)庫的事務并不會對select進行加鎖,所以事務可能并不能解決這類問題?難道只有select for update這類型的可以么?有什么什么主流一點的方法
1 回答

森林海
TA貢獻2011條經(jīng)驗 獲得超2個贊
用戶id和投票id做成聯(lián)合的唯一鍵即可.
CREATE TABLE user_vote_record ( user_id INT, vote_id INT, UNIQUE KEY uk_user_vote (user_id , vote_id) );
添加回答
舉報
0/150
提交
取消