我正在与多个用户建立一种聊天,我有 3 个不同的表 conversations
和 conversations_users
,messages
对话表:
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
。只需使用 conversations
和 conversation_messages
来存储消息、发布消息的用户以及消息发布到的对话。
关于php - 多用户聊天,比较用户对话 - MYSQL/PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554598/