消息系统的MySQL表结构

时间:2012-12-05 12:19:33

标签: mysql database

我正在开发一个使用MySQL的即时通讯系统。 当前的表结构如下所示:

id
from_user_id (FK)
to_user_id (FK)
text
date
new

但我遇到了一些问题。

首先,我这样做:

SELECT * FROM table WHERE to_user_id = (my_id) ORDER BY date desc GROUP BY from_user_id

这将返回向我发送消息的所有用户。

其次,我将他们的ID保存到一个数组中。

第三,我这样做:

SELECT * FROM table WHERE from_user_id = (my_id) AND to_user_id NOT IN (array_of_ids) ORDER BY date desc GROUP BY to_user_id

这将返回我已发送消息但尚未发送消息的所有用户。

这很有效。

用户发送的每条消息都将字段“new”设置为true。这是因为我想通知其他用户(消息的接收者)他收到了新消息。

问题是它也会向发件人显示为新邮件。

有关如何修复或将这两个SQL更改为大的SQL的任何想法?

0 个答案:

没有答案