0

当有 2 个用户 A 和 B 并且他们同时向对方发送好友请求以添加为好友时,我遇到了这种情况。支持这种关系的数据模型具有invitation_id 和friend_id 列以及一个状态。

由于他们两个一起向对方发送请求,我在决定谁应该作为请求的发起者存储时面临问题,因为数据可能会在数据库中变脏,因为它们都是相同关系的发起者,因为它们是绝对并发的。

在其他语言中,有锁的构造可以通过让一个等待而另一个被服务来处理这个问题。我不知道如何在 PHP 和 Apache 中实现这一点。请对此提出建议。

4

2 回答 2

3

你应该这样做:

A -
如果 B 正在尝试将 A 添加为朋友(而 A 已被邀请 B)则发送邀请 然后 B 自动接受 A 的邀请

于 2013-04-07T17:31:06.367 回答
2

从技术上讲,您不会“同时”收到这些请求,这意味着如果您以合理的分辨率(如秒或什至毫秒)检查请求的时间戳,您将能够简单地分辨出哪个是第一个这样做的。

于 2013-04-07T17:30:48.637 回答