2 Stimmen

Benachrichtigung der Benutzer über Datenbankänderungen

Ich habe im Kern eine php/mysql-Anwendung. Alle ~15 Minuten werden neue Daten in die Datenbank aufgenommen. Ich möchte die Benutzer benachrichtigen, dass neue Daten in der Datenbank sind. Ich dachte an einige JS auf dem Client-Computer laufen zu lassen, um für Updates alle 60 Sekunden zu überprüfen, aber ich möchte nicht die Ergebnisse nach unten ziehen, es sei denn, etwas hat tatsächlich geändert / in der DB hinzugefügt werden.

Also meine Frage ist: mit PHP/JS/MYSQL was ist der beste Weg für Clients, neue Zeilen in der DB zu erkennen?

Eine mögliche Lösung, die ich im Kopf hatte, war eine separate Tabelle namens "switch" mit einem BOOL namens 'switch', und jedes Mal, wenn ich die DB aktualisiere, wird "switch" für 60 Sekunden auf true gesetzt. Dann prüfen die Client-Computer alle 60 Sekunden, ob switch.switch = '1' (true) ist. Was denken Sie? Ich bin offen für Vorschläge zu jedem Teil dieses Plans? Ich habe die jQuery-Bibliothek geladen, falls jemand einen jQuery-Vorschlag machen möchte...

0voto

Brook Julias Punkte 2035

Wenn Sie einen Zeitstempel der letzten Aktualisierung für jeden Benutzer festlegen können und einen Auslöser haben, so dass, wenn alle Änderungen, die dieser Verwendung entsprechen, abgeschlossen sind, sich ihr Zeitstempel ändert. Dann können Sie jQuery verwenden, um zu prüfen, ob der aktuelle Zeitstempel mit dem Zeitstempel der letzten Aktualisierung für den jeweiligen Benutzer übereinstimmt.

0voto

whatnick Punkte 5286

Ich empfehle die Verwendung von MySQL Auslöser im AFTER-Modus, um einen Eintrag in eine separate Tabelle mit der Versions-ID auto-increment oder ähnlichem einzufügen. Die letzte Versions-ID kann als URL/Cookie oder über einen anderen Mechanismus gespeichert und mit der letzten vom Trigger erzeugten Version verglichen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X