ユーザーが投稿できるアプリを開発しています。まだ見ていない新しい投稿が送信されたときに、ユーザーに警告したいと考えています。全体のプロセスは、基本的に 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 のやり方ではありません。この方法はあまりうまくスケールしないからです。しかし、これが基本的な考え方です。