Menjejaki Pemberitahuan dalam Pangkalan Data: Reka Bentuk Berinspirasikan Facebook
Reka bentuk pangkalan data memainkan peranan penting dalam mengurus dan mendapatkan data dengan cekap, terutamanya dalam sosial aplikasi media seperti Facebook. Memahami cara Facebook menjejak pemberitahuan boleh memberikan cerapan berguna untuk mereka bentuk sistem yang serupa.
Jadual Pemberitahuan
Jadual pemberitahuan menyimpan maklumat tentang setiap pemberitahuan, termasuk ID (id) uniknya , pengguna miliknya (userid), perihalan pemberitahuan (kemas kini), dan masa ia dicipta (masa). Jadual ini digunakan untuk menyimpan dan menyenaraikan pemberitahuan.
Jadual Baca Pemberitahuan
Untuk menjejak pemberitahuan yang telah dibaca, jadual pemberitahuanBaca yang berasingan diperkenalkan. Jadual ini mengandungi medan berikut:
Menyoal Pemberitahuan Belum Dibaca
Untuk mendapatkan semula pemberitahuan yang belum dibaca untuk pengguna tertentu, pertanyaan berikut boleh digunakan:
<code class="sql">SELECT `userid`, `update`, `time` FROM `notifications` WHERE `notifications`.`userid` IN ( ... query to get a list of friends ...) AND `notifications`.`time` > ( SELECT `notificationsRead`.`lasttime_read` FROM `notificationsRead` WHERE `notificationsRead`.`userid` = ...$userid... )</code>
Pertanyaan ini menyertai jadual pemberitahuan dengan jadual pemberitahuanBaca dan membandingkan cap waktu pemberitahuan dengan masa baca terakhir pengguna. Pemberitahuan dengan cap masa lebih besar daripada masa baca terakhir pengguna dianggap belum dibaca.
Mengemas kini Pemberitahuan Baca
Apabila pengguna membuka halaman pemberitahuan, baris yang sepadan dalam jadual pemberitahuanBaca hendaklah dikemas kini untuk merekodkan masa semasa sebagai masa baca terakhir. Dengan mengekalkan bendera ini, pertanyaan berikutnya boleh mendapatkan semula pemberitahuan yang belum dibaca dengan cekap.
Pendekatan ini membolehkan penjejakan pemberitahuan yang dibaca dan belum dibaca yang cekap dengan cara yang serupa dengan cara Facebook mengurus sistem pemberitahuannya.
Atas ialah kandungan terperinci Bagaimanakah Facebook Menjejaki Pemberitahuan Baca dan Belum Dibaca?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!