0

我正在开发一个用户可以发布的应用程序。我想在提交他们没有看到的新帖子时提醒用户。整个过程基本上就是facebook的设置方式。但是,我想知道如何跟踪用户已经看过的帖子。

Facebook是如何做到这一点的?

4

1 回答 1

4

每当用户查看帖子(发出返回所述帖子的请求)时,向表中添加一个条目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 真正的做法,因为这种方法不能很好地扩展。但这是基本思想。

于 2012-09-09T09:36:02.937 回答