为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 投票问题 事务

mysql 投票问题 事务

繁花不似锦 2018-09-23 21:30:25
需要查看用户是否已经投票,如果已经投票,则不插入数据,如果未投票,则插入数据。在并发的条件下,有可能用户在同一时刻都查询到未投票,然后导致插入多条数据。针对这样的情况,有什么好的解决方案么?目前所知,用数据库的事务并不会对select进行加锁,所以事务可能并不能解决这类问题?难道只有select for update这类型的可以么?有什么什么主流一点的方法
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

用户id和投票id做成联合的唯一键即可.

CREATE TABLE user_vote_record (
    user_id INT,
    vote_id INT,    UNIQUE KEY uk_user_vote (user_id , vote_id)
);


查看完整回答
反对 回复 2018-09-23
  • 1 回答
  • 0 关注
  • 541 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信