sql >> Databasteknik >  >> RDS >> Mysql

Spårning av gilla-meddelanden på Facebook (DB Design)

Jag vet inte om det här är det bästa sättet att göra det här, men eftersom jag inte fick några idéer från någon annan, är det detta jag skulle göra. Jag hoppas att det här svaret kan hjälpa andra också.

Vi har 2 bord

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

Tanken är att välja aviseringar från aviseringstabellen och gå med i aviseringstabellen Läs och kontrollera den senast lästa aviseringen och raderna med ID> aviserings-id. Och varje gång aviseringssidan öppnas uppdatera raden från aviseringstabellen.

Jag antar att frågan om olästa aviseringar skulle vara så här...

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

Frågan ovan är inte markerad.Tack vare idén med db design från @espais



  1. Oracle Ace förändringar

  2. SQL-serverunion men håll ordning

  3. Varför kan jag skapa en tabell med PRIMARY KEY på en nullbar kolumn?

  4. T-SQL Dynamic SQL och Temp-tabeller