2010-03-28 5 views
13

ich Benachrichtigungen auf meiner Seite, ähnlich wie SO tut es in der Lage sein wollen. Ich habe nach einer guten Tischstruktur gesucht, um das zu tun, aber ich kann es nicht herausfinden.für eine gute Datenbankstruktur der Suche Facebook/SO wie Benachrichtigungen zu erreichen

Ich dachte so etwas.

Benachrichtigungen

id, notification_type_id, user_id, type_id

Benachrichtigungstypen

id, notification_text

Werden die Meldung Typ entweder einen neuen Beitrag, einen neuen Kommentar beziehen würde, oder welche Funktionen ich später auf der ganzen Linie hinzufüge ... Benutzer-ID würde sich auf wen auch immer die Benachrichtigung beziehen ist für. Type_id und Benachrichtigungsart würden Hand in Hand gehen. Wenn also der notification_type ein neuer Kommentar wäre, wäre die type_id die comment_id, zu der man gehen möchte.

Das scheint mir gut, aber ich möchte in der Lage sein, ALLE Benutzer zu benachrichtigen, wenn sich etwas ändert .. wie auf Facebook, wenn Sie etwas kommentieren, erhalten Sie eine Benachrichtigung, dass jemand anderes auch nach Ihnen die gleiche Sache kommentiert hat .

Ich kann nicht scheinen, um dies herauszufinden ... wollte Hilfe

Dank

EDIT: So wie ich dachte darüber war, die notification_type_id zum NOTIFICATION_TYPE Tabelle zuordnen würde, die das halten würde Text für jede Benachrichtigung ("Sie haben einen neuen Kommentar", "blah blah blah hat auch einen Kommentar zu blah blah blah" usw.), type_id würde der primary_id von dem, was auch immer der Kommentar ist, zugeordnet werden. Wenn beispielsweise in der Benachrichtigung angegeben wird, dass Sie einen neuen Kommentar zu Ihrem Beitrag haben, ist typ_id die primäre ID des Posts für die einfache Verknüpfung. IDK, es war nur ein Gedanke.

+0

Sprechen Sie über E-Mail-Benachrichtigungen oder Popup-Benachrichtigungen? Ist Ihr Problem, dass Sie nicht wissen, wie Sie überprüfen, wer benachrichtigt werden soll oder ob Sie nicht wissen, unter welchen Bedingungen aus der Datenbank gelesen werden soll? – arnorhs

Antwort

0

Können Sie ein wenig mehr, was jede Spalte ist, da Ihr Text nicht sehr präzise ist, da Sie "Benachrichtigungstyp" erwähnen, und das ist keine Spalte in Ihrem Beispiel. Welche Spalte weist auf ID in den Tabellenbenachrichtigungstypen hin: notification_type_id oder type_id?

+0

Ich vermisse etwas, aber die Benachrichtigung an alle Benutzer scheint nicht schwer zu erreichen: Sie nur beitreten die Benachrichtigungen Tabelle und die Tabelle, wo Sie die Benutzer speichern, und Sie werden es eingestellt haben. Sie können sogar nach Benutzern filtern, damit nicht jeder die Benachrichtigung erhält. Sie können die resultierenden Zeilen in einer anderen Tabelle speichern, in der Sie die Benutzer-ID und die Benachrichtigungs-ID haben. War das, was du gesucht hast? – JorgeLarre

+0

Die Benachrichtigungen werden nicht durch mich gesendet .... es sind Ereignisbenachrichtigungen, die jedes Mal ausgefüllt werden, wenn ein für den Benutzer relevantes Ereignis eintritt ... Zum Beispiel, wenn jemand Ihre Frage zu SO beantworten oder Ihre Antwort kommentieren würde. .zwei verschiedene Benachrichtigungen Außerdem ist es noch schwieriger, eine Benachrichtigung an alle zu senden, die bereits eine Anfrage beantwortet haben, dass eine neue Antwort von jemand anderem gepostet wurde. – BDuelz