これが最善の方法かどうかはわかりませんが、他の人からアイデアが得られなかったので、これを実行します。この回答が他の人にも役立つことを願っています。
2つのテーブルがあります
notification
-----------------
id (pk)
userid
notification_type (for complexity like notifications for pictures, videos, apps etc.)
notification
time
notificationsRead
--------------------
id (pk) (i dont think this field is required, anyways)
lasttime_read
userid
アイデアは、通知テーブルから通知を選択し、notificationsReadテーブルに参加して、最後に読み取られた通知とID>notificationidの行を確認することです。そして、通知ページが開かれるたびに、notificationsReadテーブルから行を更新します。
未読通知のクエリは次のようになります。
SELECT `userid`, `notification`, `time` from `notifications` `notificationsRead`
WHERE
`notifications`.`userid` IN ( ... query to get a list of friends ...)
AND
(`notifications`.`time` > (
SELECT `notificationsRead`.`lasttime_read` FROM `notificationsRead`
WHERE `notificationsRead`.`userid` = ...$userid...
))
上記のクエリはチェックされていません。@espaisからのdbデザインのアイデアに感謝します