将用户添加到跟踪聊天对话的表的最佳方法

时间:2017-05-17 09:40:40

标签: mysql

我正在建立聊天,用户可以与其他用户开始对话。

我将每个会话存储在包含以下列的表中:

  • conversations_id
  • conversation_starter(这是启动会话的用户)
  • conversation_receiver(这是接收对话的用户)

正如您所看到的,该表仅限于2个用户。那么什么是让更多用户进入的最佳方式?例如。第二张桌子?

2 个答案:

答案 0 :(得分:1)

对话表和对话参与者表如何?

<强>会话

  • conversation_id
  • CONVERSATION_NAME

<强>参与者

  • participant_id
  • PARTICIPANT_NAME

<强>参股

  • participation_id
  • participant_id
  • conversation_id
SELECT A.participant_name AS name, C.conversation_name AS conv_name
FROM conversations C, participations P, participants A 
WHERE P.conversation_id = C.conversation_id AND P.participant_id = A.participant_id AND C.Conversation_id = ?

以上内容应显示对话中的参与者列表。

然后可以在对话中找到实际消息的表格吗?

讯息

  • MESSAGE_ID
  • message_participant_id_sender
  • message_participant_id_receiver
  • message_conversation_id

可以扩展的方式很多。

答案 1 :(得分:1)

您可以使用会话创建一个表 conversation_id 和其他数据,使用用户创建第二个与列相互通信的表 conversation_id user_id

在具有对话的表中,也可以是具有启动Cinversation(所有者)的用户的列。