场景:签到功能,用户每天只能签到一次,签到成功送相应礼品;
在并发的过程中,同个用户如果很短时间内多次调用接口,由于未在数据库找到当天签到记录,可能造成写入多条记录,造成多次签到,如何解决这一问题?
目前方案:对数据库中的用户id和当天时间做唯一性索引,则只能插入一条数据;
想请教下还有什么别的解决方案?
场景:签到功能,用户每天只能签到一次,签到成功送相应礼品;
在并发的过程中,同个用户如果很短时间内多次调用接口,由于未在数据库找到当天签到记录,可能造成写入多条记录,造成多次签到,如何解决这一问题?
目前方案:对数据库中的用户id和当天时间做唯一性索引,则只能插入一条数据;
想请教下还有什么别的解决方案?
2 回答2.5k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答1.1k 阅读✓ 已解决
2 回答2.2k 阅读
3 回答781 阅读✓ 已解决
2 回答556 阅读✓ 已解决
1 回答858 阅读✓ 已解决
我说下表结构把
id,user_id,date
user_id+date设置唯一索引。记住是两个字段加起来,这样即使你多次签到也没关系,在数据层面上已经能够保证同一个user_id一天最多一条签到记录