开发者

PM system - previewing previous PMs

I am working on a PM system where I'd like to have the previous sent PMs for one conversation, listed above the last received PM. But my question is: how do I go about setting up such a table in a database? I toyed for a while about using an id for each specific conversation, but what would the source for that id be? I can't use auto increment (it seems), because I'm using it for the primary "id开发者_JAVA技巧" column.

Or maybe there's a completely different way I can experiment with the already available columns (id, from, to, subject, message, sent, read, deleted); but how? Please help a lost man out.


You could add a origin_id column to your table that contains the id of the root/original message, or NULL if it's a new discussion (root).

Then you can get the root messages by filtering those than have origin_id = NULL and then group by origin_id to get the message thread.


Okay, so I have got it partly solved...
I used another table containing the one column which holds the subject of the PM. I also have a new column in the regular "pms" table that holds the same ID to be able to join the tables together.

However, when I select all the PMs to show them in the inbox, I have not found a way to group the conversations in order by if they're read or not. I'm currently using this SQL query:

  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

I came up with this:

   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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜