PM系统 - 预览以前的PM

时间:2011-06-15 22:11:03

标签: php mysql

我正在开发一个PM系统,我希望将之前发送的PM用于一个对话,列在最后收到的PM上方。但我的问题是:如何在数据库中设置这样的表?我玩了一段时间来为每个特定的对话使用id,但该id的来源是什么?我不能使用自动增量(似乎),因为我将它用于主“id”列。

或许我可以尝试使用已经可用的列(id,from,to,subject,message,sent,read,deleted);但怎么样?请帮助一个失踪的人。

2 个答案:

答案 0 :(得分:2)

您可以在表格中添加origin_id列,其中包含根/原始邮件的id,如果是新讨论(根),则可以NULL

然后,您可以通过过滤除origin_id = NULL之外的消息来获取根消息,然后按origin_id分组以获取消息线程。

答案 1 :(得分:0)

好的,所以我已经部分解决了...... 我使用另一个包含一列的表来保存PM的主题。我在常规“pms”表中也有一个新列,它包含相同的ID,可以将表连接在一起。

然而,当我选择所有PM以在收件箱中显示它们时,我还没有找到一种方法来按顺序对对话进行分组,如果它们被读取或不被读取。我目前正在使用这个SQL查询:

  SELECT * 
    FROM `pms` 
    JOIN `pm_conversations` ON (pms.ConvID = pm_conversations.ID) 
   WHERE pms.To='username' 
GROUP BY pm_conversations.ID 
ORDER BY pms.ID

我想出了这个:

   SELECT MAX(pms.ID) as pmIDS,
          pms.*,
          pm_conversations.* 
    FROM `pms` 
    JOIN `pm_conversations` ON (pms.ConvID = pm_conversations.ID)
   WHERE `To`='".$UserActive."' 
GROUP BY pm_conversations.ID 
ORDER BY pmIDS DESC