我一直在研究PHP消息传递系统,并且我想实现访问特定对话/线程的两种方法。根据收件人从数据库中选择对话
第一个问题是查询会话的ID(message/{numeric ID}
),这非常简单直接。它也是查询群组消息的唯一方法。
该部分的方法是查询个人“1对1”消息线程(message/{alphanumeric user ID}
)。我将列出下面使用的三张表。
表conversations
:
id | locked | timestamp
timestamp
表示在会话进行排序时具有较少的查询起见最后一个消息的时间。
表participants
:
id | conversation | member | timestamp
conversation
是国外ID键从conversations
,member
是表members
外键和timestamp
在谈话的“看到”的功能目的用户的最后一项活动。
表messages
:
id | member | conversation | message | timestamp
列是不言自明这里。
现在,我想取得对话的ID,我只根据成员ID将人员A和人员B作为参与者。
我已经考虑了几个小时,没有想到优雅的解决方案。
只有A和B.所以应该没有其他人,对吗? – iXCray
确实,这是正确的 - 只有A和B,没有其他人。 –
但结果可能不止一次与这些标准进行对话。你想要所有的还是最新的? – steven