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