gpt4 book ai didi

php - 如何在 facebook 等 Web 应用程序中实现线程消息

转载 作者:行者123 更新时间:2023-11-30 00:46:33 24 4
gpt4 key购买 nike

我需要使用 php 和 mysql 在我的 Web 应用程序中实现线程消息。

下面是我的表结构。 enter image description here

我正在使用下面的查询来选择登录用户的线程。

假设登录用户为“18”,而不是我的查询。

SELECT `m1`.`message_id` AS `message_id` , `m1`.`receiver` AS `receiver` , `m1`.`sender` AS `sender` , `m1`.`message` AS `message`, `m1`.`read_status` AS `read_status` , `m1`.`rcvd_date_time` AS `rcvd_date_time` 
FROM (
`messages` `m1`
LEFT JOIN `messages` `m2` ON ( (
(
`m1`.`receiver` = `m2`.`receiver`
)
AND (
`m1`.`message_id` < `m2`.`message_id`
) )
)
)
WHERE ISNULL( `m2`.`message_id` )
AND (
m1.sender =18
OR m1.receiver =18
)
ORDER BY m1.rcvd_date_time DESC

我得到的结果低于结果。 enter image description here

您可以看到我为用户 25 获取了 2 个线程,看来使用上述查询我将为每个用户获取 2 个线程。

有人可以帮我实现这一点吗?

我需要更改表结构吗?或查询?

最佳答案

您需要另一列“reply-to-msg-id”,用于跟踪消息回复的消息线程。

所以

message_id
in-reply-to-message-id
receiver
sender

新线程回复自身或 0 或 null(取决于您想要如何编码)

所有其他消息都会回复消息或新线程。

顺便说一句,这不允许嵌套。

关于php - 如何在 facebook 等 Web 应用程序中实现线程消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com