2016-04-27 10 views
0

Ich habe an einem Projekt gearbeitet, wo ich eine Benachrichtigung an einen Benutzer zeigen muss, wenn eine Aktivität unter seinem Profil passiert (wie wenn jemand auf sein Foto kommentiert).Benutzerbenachrichtigung/Alarmsystem mit AJAX PHP Mysql

Ich plane es mit PHP und MySQL mit Ajax (für asynchrone Anfragen).

Table 'alerts': 

    Id(PK)  by_id(FK) notification     is_seen 
    10   02  max commented on your photo. true 
    20   45  john replied to your comment. true 
    30   65  jack liked your photo .  true 
    40   41  jill poked you.    false 

Was ich tue, ist, wenn ein loggedin Benutzer (sagen max) Kommentare zu einem anderen Benutzer (zB Bens) pic, dann bin ich bilden zunächst eine Meldung („max commented on your photo“), es zu speichern, wie oben auf den db , und zeigt dann seine Benachrichtigung an den anderen Benutzer (ben) über Ajax, die alle 5 Sekunden aktualisiert.

Ich wollte fragen, wie sollte meine Datenbanktabellenstruktur für solche Benachrichtigungen sein?

Ist es die geeignete Art, ein solches System in PHP zu machen?

Sollte ich die gesamte Benachrichtigung in meiner Datenbank speichern (wie oben)?

Oder ist ihre andere Methode eine bessere Methode, es zu tun?

Hinweis: Ich möchte keine WebSockets verwenden, da ich in Zukunft nicht viel Verkehr erwarte (es ist für eine Schulseite).

Vielen Dank im Voraus.

Antwort

1

Ich würde die Namen (d. H. Jack und jill) in der Benachrichtigungsspalte entfernen und einfach das Ereignis hinzufügen (d. H. Auf Ihrem Foto kommentiert).

Ich würde dann eine separate Spalte für die Benutzer-ID (FK) der Person, die die Aktion zusammen mit einer Spalte für die Benutzer-ID des Empfängers der Aktion durchgeführt.

Anstelle von True/False den BOOLEAN-Datentyp verwenden und als 1 oder 0 speichern.