2010-03-28 11 views
13

Voglio poter avere notifiche sul mio sito, in modo simile al modo in cui SO lo fa. Ho cercato una buona struttura del tavolo per farlo, ma non riesco a capirlo.Alla ricerca di una buona struttura del database per raggiungere le notifiche di Facebook/SO

Stavo pensando qualcosa del genere.

Notifiche

id, notification_type_id, user_id, type_id

tipi di notifica

id, notification_text

Se il tipo di notifica si riferirebbe alla sia un nuovo post, un nuovo commento, o qualunque caratteristica aggiungo in seguito alla riga ... User ID si riferirebbe a chiunque sia la notifica è per. Type_id e tipo di notifica andrebbero di pari passo, quindi se il tipo di notifica era un nuovo commento, type_id sarebbe il comment_id a cui andare.

Questo sembra buono con me, ma voglio essere in grado di informare tutti gli utenti quando qualcosa cambia .. come su facebook quando si commento su qualcosa, si ottiene una notifica che qualcun altro ha anche commentato la stessa cosa dopo aver .

I cant sembrano capire questo ... help wanted

Grazie

EDIT: Il modo in cui ho pensato che fosse, l'avrebbe notification_type_id mappa al tavolo notification_type, tale da ostacolare la testo per ogni notifica ("Hai un nuovo commento", "blah blah blah ha anche commentato su blah blah blah", ecc.), type_id sarebbe mappato al primary_id di qualunque cosa riguardasse il commento. per esempio, se la notifica sta dicendo che hai un nuovo commento sul tuo post, allora type_id sarebbe l'id principale del post per un facile collegamento .. IDK, era solo un pensiero.

+0

Stai parlando di notifiche via e-mail o notifiche pop-up? Il tuo problema è che non sai come controllare chi dovrebbe essere informato o è che non sai a quali condizioni leggere dal database? – arnorhs

risposta

0

Puoi fornire ulteriori dettagli su ciascuna colonna, perché il tuo testo non è molto preciso, dato che menzioni "tipo di notifica" e che non è una colonna nell'esempio. Quale colonna punta all'id nei tipi di notifica della tabella: notification_type_id o type_id?

+0

Potrebbe mancare qualcosa, ma la notifica a tutti gli utenti non sembra difficile da raggiungere: basta unirsi alla tabella delle notifiche e alla tabella in cui si memorizzano gli utenti, e si avrà a disposizione. Puoi persino filtrare gli utenti, quindi non tutti ricevono la notifica. È possibile memorizzare le righe risultanti in una tabella diversa, in cui saranno presenti user_id e notification_id. Era questo quello che stavi cercando? – JorgeLarre

+0

Le notifiche non vengono inviate tramite me .... si tratta di notifiche di eventi che vengono popolate ogni volta che si verifica un evento pertinente all'utente ... Ad esempio, se qualcuno dovesse rispondere alla tua domanda su SO o commentare la tua risposta .. .due diverse notifiche. Inoltre, ancora più difficile è inviare una notifica a tutti coloro che hanno già risposto a una richiesta che una nuova risposta è stata postata da qualcun altro. – BDuelz

Problemi correlati