当有2个用户A和B并且他们彼此同时发送好友请求作为朋友添加时,我有这种情况。支持此关系的数据模型包含列inviter_id和friend_id以及状态。
由于他们两个一起向对方发送请求,我在决定谁应该存储为请求的启动器时面临问题,因为数据可能在数据库中变脏,因为它们是完全并发的,因此它们都是相同关系的发起者。
在其他语言中,有一些Locks构造可以通过将一个等待而另一个服务来处理它。我不知道如何在PHP和Apache中实现它..请就此提出建议..
答案 0 :(得分:3)
你应该这样:
A - 发送邀请
如果B试图将A添加为朋友(而A已被邀请B)则B自动接受A的邀请
答案 1 :(得分:2)
从技术上讲,你不会“同时”得到这些请求,这意味着你要以合理的分辨率(如秒或甚至几毫秒)检查请求的时间戳,你将能够简单地告诉哪一个先做了那个