Jag vet inte om det här är det bästa sättet att göra det här, men eftersom jag inte fick några idéer från någon annan, är det detta jag skulle göra. Jag hoppas att det här svaret kan hjälpa andra också.
Vi har 2 bord
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
Tanken är att välja aviseringar från aviseringstabellen och gå med i aviseringstabellen Läs och kontrollera den senast lästa aviseringen och raderna med ID> aviserings-id. Och varje gång aviseringssidan öppnas uppdatera raden från aviseringstabellen.
Jag antar att frågan om olästa aviseringar skulle vara så här...
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...
))
Frågan ovan är inte markerad.Tack vare idén med db design från @espais