【问题标题】:How to link sent and received messages in mysql?如何在mysql中链接发送和接收的消息?
【发布时间】:2013-11-19 20:42:09
【问题描述】:

我正在创建一个约会网站,人们可以在其中相互发送和接收消息。 我有一个表“用户”,其中包含用户 ID 和年龄、姓名等信息... 还有一个“消息”表,其中包含消息 ID、从、到、日期时间和消息本身。 我可以存储消息,并在我的表格中显示如下:用户 23 向用户 54 发送消息 x。

但现在用户 54 需要回复用户 23,我不知道如何将下一条消息链接到此原始消息。

这个想法是最终在 2 个用户之间可以看到某种邮件对话。

我不想使用某种留言板或聊天解决方案。

有谁知道如何处理这个问题或者我如何将发送和接收的消息相互链接?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    一种方法是有一个对话表,每条消息都包含一个对话ID。发送初始消息时,您会创建一个新对话,而回复会复制上一条消息中的对话 ID。

    另一种方法是每条消息都包含一个 In-Reply-To 字段,该字段将包含前一条消息的消息 ID。然后,您可以重新创建整个对话流程。

    您也可以同时执行这两种操作,因为对话 ID 可以通过简单的加入轻松找到对话中的所有消息,然后您可以使用 In-Reply-To 显示线程。

    【讨论】:

    • 我将尝试将解决方案与您提供的回复字段一起使用。我想我知道我怎么能那样做。感谢您的快速回复!
    【解决方案2】:

    有几种方法可以实现这一点,例如:

    • 添加另一个字段“参考”:答案的行将在那里存储原始消息的消息 ID
    • 如果有不同的可能方式引用消息,则添加另一个字段“referencetype”ENUM('RE','FWD', ...)

    【讨论】:

      【解决方案3】:

      误读请求。

      您将需要消息表中的一个新列,并且您可以将根 messageID 保留在该列中,这样您就可以在有人加载对话时看到“链上”,他们会按顺序获取具有该根 messageID 的所有内容迄今为止,您只需将该 messageID 存储在某个位置,以便在您将新消息放回表中时引用。

      【讨论】:

      • 你好像误解了这个问题。
      猜你喜欢
      • 2011-11-09
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      相关资源
      最近更新 更多