Nie wiem, czy jest to najlepszy sposób, aby to zrobić, ale ponieważ nie mam żadnych pomysłów od nikogo innego, właśnie to bym robił. Mam nadzieję, że ta odpowiedź może pomóc również innym.
Mamy 2 stoły
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
Chodzi o to, aby wybrać powiadomienia z tabeli powiadomień i dołączyć do tabeli notificationsRead i sprawdzić ostatnio odczytane powiadomienie oraz wiersze z identyfikatorem> notificationid. I za każdym razem, gdy strona powiadomień jest otwierana, aktualizuj wiersz z tabeli powiadomieńPrzeczytaj.
Zapytanie o nieprzeczytane powiadomienia wyglądałoby tak...
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...
))
Powyższe zapytanie nie jest sprawdzane.Dzięki idei projektowania db z @espais