Je ne sais pas si c'est la meilleure façon de le faire, mais depuis je n'ai pas d'idées de quelqu'un d'autre, c'est ce que j'allais faire. J'espère que cette réponse pourrait aider d'autres personnes aussi bien.
Nous avons 2 tables
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
L'idée est de sélectionner les notifications à partir des notifications de table et de rejoindre le notificationsRead de table et de vérifier la dernière notification de lecture et des lignes avec ID > notificationid. Et à chaque fois la page des notifications est ouvert mise à jour de la ligne de notificationsRead table.
La requête de notifications non lues je pense être comme ça..
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...
))
La requête ci-dessus n'est pas vérifiée.
Merci pour l'idée de la conception bd de @espais