Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Theo dõi thông báo like Facebook (Thiết kế DB)

Tôi không biết đây có phải là cách tốt nhất để làm điều này hay không, nhưng vì tôi không có ý tưởng từ bất kỳ ai khác, đây là những gì tôi sẽ làm. Tôi hy vọng câu trả lời này cũng có thể giúp ích cho những người khác.

Chúng tôi có 2 bảng

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

Ý tưởng là chọn các thông báo từ bảng thông báo và tham gia bảng Thông báoĐọc và kiểm tra thông báo đã đọc gần đây nhất và các hàng có ID> thông báo. Và mỗi khi trang thông báo được mở, hãy cập nhật hàng từ bảng thông báo Đọc.

Truy vấn cho các thông báo chưa đọc mà tôi đoán sẽ như thế này ..

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...
))

Truy vấn ở trên không được chọn. Cảm ơn ý tưởng thiết kế db từ @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. Sử dụng Python và MySQL trong Quy trình ETL:SQLAlchemy

  2. proxysql-admin Alternatives - ClusterControl ProxySQL GUI

  3. Làm thế nào để nhóm theo tuần trong MySQL?

  4. Cân bằng tải với ProxySQL cho Percona XtraDB Cluster

  5. Chuyển văn bản thành số trong truy vấn MySQL