sql >> Databáze >  >> RDS >> Mysql

Sledování upozornění na Facebooku (DB Design)

Nevím, jestli je to nejlepší způsob, jak to udělat, ale protože nemám žádné nápady od nikoho jiného, ​​udělal bych to. Doufám, že tato odpověď pomůže i ostatním.

Máme 2 stoly

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

Cílem je vybrat oznámení z tabulky oznámení a připojit se k tabulce notificationsRead a zkontrolovat poslední přečtené oznámení a řádky s ID> notificationid. A pokaždé, když se otevře stránka oznámení, aktualizujte řádek z tabulky notificationsRead.

Dotaz na nepřečtená oznámení by asi vypadal takto..

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

Výše uvedený dotaz není zkontrolován. Díky nápadu db design od @espais



  1. Potřeba resetovat hodnotu sekvence v Oracle

  2. Jak načíst data dvou sloupců ve formátu A, B v Oracle

  3. Jak seskupit podle měsíce z pole Datum pomocí sql

  4. Android – kurzor na MapReady (značky)