Ik weet niet of dit de beste manier is om dit te doen, maar aangezien ik van niemand anders ideeën heb, zou ik dit doen. Ik hoop dat dit antwoord ook anderen kan helpen.
We hebben 2 tafels
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
Het idee is om meldingen uit de meldingstabel te selecteren en deel te nemen aan de tabel met meldingenRead en de laatst gelezen melding en rijen te controleren met ID> meldingsid. En elke keer dat de meldingspagina wordt geopend, werkt u de rij bij uit de tabel met meldingenLees.
De vraag naar ongelezen meldingen zou volgens mij zo zijn..
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...
))
De bovenstaande vraag is niet gecontroleerd. Dankzij het idee van db design van @espais