Facebook如何跟踪观看过的帖子?

时间:2012-09-09 09:31:13

标签: php

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

facebook如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

每当用户查看帖子(发出返回所述帖子的请求)时,请在views表中添加一个条目。这是一个简单的图表

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真正做到的,因为这种方法并不能很好地扩展。但这是基本的想法。