我正在开发一个用户可以发布的应用程序。我想在提交他们没有看到的新帖子时提醒用户。整个过程基本上就是facebook的设置方式。但是,我想知道如何跟踪用户已经看过的帖子。
Facebook是如何做到这一点的?
我正在开发一个用户可以发布的应用程序。我想在提交他们没有看到的新帖子时提醒用户。整个过程基本上就是facebook的设置方式。但是,我想知道如何跟踪用户已经看过的帖子。
Facebook是如何做到这一点的?
每当用户查看帖子(发出返回所述帖子的请求)时,向表中添加一个条目views
。这是一个简单的图表
这样你就知道哪个用户查看了什么。此外,您可以添加一个timestamp
字段来跟踪用户查看帖子的时间。
因此,如果您想知道谁查看了该帖子666
,您可以简单地
SELECT DISTINCT u.user_id
FROM users u
INNER JOIN views v ON u.user_id = v.user_id
WHERE v.post_id = 666
您还可以检查用户是否查看了某个帖子,以便您决定是否提醒他
SELECT DISTINCT u.user_id
FROM users u
INNER JOIN views v ON u.user_id = v.user_id
WHERE v.post_id = 666 AND v.user_id = 1000
你可以工作一个简单的逻辑
if (lastQueryReturnedAResult){
//User had seen the post
}else{
alertUser();
viewPostInDifferentColor();
}
注意:这并不是 Facebook 真正的做法,因为这种方法不能很好地扩展。但这是基本思想。