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 に答える