Saya tidak tahu apakah ini cara terbaik untuk melakukan ini, tetapi karena saya tidak mendapat ide dari orang lain, inilah yang akan saya lakukan. Saya harap jawaban ini dapat membantu orang lain juga.
Kami memiliki 2 tabel
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
Idenya adalah untuk memilih notifikasi dari tabel notifikasi dan bergabung dengan tabel notifikasiBaca dan periksa notifikasi dan baris yang terakhir dibaca dengan ID> notificationid. Dan setiap kali halaman notifikasi dibuka, perbarui baris dari tabel NotificationRead.
Kueri untuk notifikasi yang belum dibaca saya kira akan seperti ini..
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...
))
Kueri di atas tidak dicentang. Terima kasih atas ide desain db dari @espais