Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pelacakan notifikasi suka Facebook (Desain DB)

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah saya membuat parameter nama tabel dalam pernyataan yang disiapkan?

  2. pip install mysqlclient mengembalikan kesalahan fatal C1083:Tidak dapat membuka file:'mysql.h':Tidak ada file atau direktori seperti itu

  3. Kesalahan fatal:Panggilan ke kueri fungsi anggota () pada nol

  4. Memantau Kinerja MySQL dengan ClusterControl

  5. SELECT View berisi subquery dalam klausa FROM