我正在开发一个用户可以发布的应用。我想在提交他们尚未看到的新帖子时提醒用户。整个过程基本上就是facebook的设置方式。但是,我想知道如何跟踪用户已经看过的帖子。
facebook如何实现这一目标?
答案 0 :(得分: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真正做到的,因为这种方法并不能很好地扩展。但这是基本的想法。