gpt4 book ai didi

php - 社交网络通知逻辑

转载 作者:可可西里 更新时间:2023-11-01 07:44:40 24 4
gpt4 key购买 nike

我正在研究某种社交网络。它类似于twitter/instagram,有用户,他们可以互相关注、发帖、写评论和点赞。

我已经实现了一个通知系统,用户可以在其中获取有关他关注的人的事件的信息(他们喜欢什么和评论什么)。

我为此使用了 mysql 查询。
这是查询的简化版本:

SELECT t.type, t.param1, t.param2, t.date_time FROM (
SELECT 'like' as type,
likes.user_id as param1,
likes.user_name as param2,
likes.date_time as date_time,
FROM likes
WHERE (SOME CONDITION GOES HERE)

UNION ALL

SELECT 'comment' as type,
comments.user_id as param1,
comments.user_name as param2,
comments.date_time as date_time,
FROM comments
WHERE (SOME CONDITION GOES HERE)
) as t ORDER BY t.date_time ASC

一切正常。

我下一步要做的是向用户展示他收到了多少新通知。

为此,我有一个解决方案,我想问您它是否可以/有效,或者您是否知道如何更好地实现它。

所以,解决办法是:
我将在用户表中创建一个字段“total_notifications”。
每次用户访问网站时,我都会获取 mysql 计数所有通知和
如果通知比用户字段中的多,我会将它们之间的差异显示为"new"。

换句话说,每次用户访问网站时都会调用上面写的那种查询,而不是 SELECT t.type会有 SELECT count(*) .

我知道这对数据库来说是一项繁重的工作,那么还有其他解决方案吗?或者这可以吗?

最佳答案

好吧,创建一个名为通知的新表,用于存储用户 ID、通知类型、内容、已见字段(bool)

然后,当发生任何事情时,将所需的值添加到此表中。

然后在用户检查网站时做一个

SELECT COUNT(*) WHERE user_id= current user id AND seen = 0.

然后使所有这些字段看到的值等于 1 以将它们标记为用户看到的。

我希望我理解你的问题。

关于php - 社交网络通知逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901795/

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