php - 多用户聊天,比较用户对话 - MYSQL/PHP

标签 php mysql

我正在与多个用户建立一种聊天,我有 3 个不同的表 conversationsconversations_usersmessages

对话表:

id | founder_id | created_time

对话用户表:

id | user_id | conversation_id

消息表

id | conversation_id | user_id | message

假设在与 ID 1 的对话中有 3 个人要聊天,而与 ID 2 的对话也有 2 个人

 user_id | conversation_id
    1              1
    2              1
    4              1
    3              2
    4              2

但问题是我想在执行任何操作之前检查用户 1,2,3,4 之间的对话是否存在,并将消息定向到正确的对话。

但很明显,与用户 1,2,3,4 的对话与与用户 3,4 的对话完全不同

女巫是将用户与表 conversations_users 进行精确比较并获得该对话的唯一性的逻辑吗?

编辑: 它的工作方式类似于 facebook 的聊天,在那里我可以与 3 或 4 个不同的人开始对话,或者只与 2 个或其他任何人开始对话,没有已经设置的“房间”,用户将在发送第一条消息后创建对话,出于这个原因,我需要检查该用户是否已经在没有对话 ID 的情况下与其他用户进行了对话

最佳答案

您根本不需要conversation_users。只需使用 conversationsconversation_messages 来存储消息、发布消息的用户以及消息发布到的对话。

关于php - 多用户聊天,比较用户对话 - MYSQL/PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554598/

相关文章:

php - 使用 session 电子邮件在 php 中获取用户名字

php - 如何获取 jQuery $.ajax 错误响应文本?

MYSQL : IF EXISTS

php - 在Codeigniter中获取sql查询结果并显示在网页上

mysql - 返回一个列值的结果,但不返回另一个 SQL

javascript - 通过ajax对Mysql表进行排序

php - CakePHP 中是否可以检测 MySQL 字段的字段类型?

php - 在 php 中维护页面之间的 session ?

python - 在 Python 中构建 MySQL 更新查询的有效方法

mysql - 如何计算按域分组的电子邮件地址?