2017-07-02 1 views
0

Ich arbeite an einem Szenario, das Tausende von Benutzern eine Textdatei bearbeiten können, haben sie begrenzte Zeit, um ihre Aktualisierungen vorzunehmen. während ein Benutzer auf eine Datei zugreift, die anderen Benutzern den Zugriff verweigern soll, indem Sie true für die Spalte "isAccessing" in meiner SQL-Tabelle festlegen. Was ist, wenn auf der Clientseite ein Verbindungsverlust auftritt? Daher können sie den Status des Datensatzes "isAccessing" nicht auf "false" aktualisieren. kann ich eine Methode in meiner Datenbank haben, wenn der Benutzer den Status des Datensatzes nicht aktualisieren konnte ?. Daher ändert die Datenbank automatisch den Status in false.MySQL - Halten Sie einen Datensatz für während und geben Sie es frei, wenn Benutzer den Status nicht ändern konnte

Bitte helfen Sie mir mit ein paar Ideen.

+0

Sie können Zeit von 'isAccessing' sparen. Mit cron überprüfe diese Zeit auf Timeout und setze 'false' wenn nötig. –

+0

Es gibt Open-Source-Tools, die eine kollaborative Echtzeitbearbeitung ermöglichen. Überlegen Sie, ihren Quellcode zu lesen und zu sehen, wie sie damit umgehen. (Viele von ihnen schaffen es, ohne die gesamte Datei zu sperren.) – Chris

+0

@Chris wo ist der Quellcode :( – Sathish

Antwort

1

Erwägen Sie, isAccessing durch eine Zeitstempelspalte (d. H. AccessingUntilTime) zu ersetzen, die den Stichtag hält, bis der Benutzer den Beitrag bearbeiten kann.

Wenn Sie beispielsweise TIME verwenden, können Sie TIME + X zu dieser Spalte als Wert für diesen neuen Post hinzufügen. Wenn der Benutzer das Zeitlimit überschritten hat und nicht bearbeitet hat, ist die Zeit nach X verstrichen und Sie können die Bedingung prüfen, um zu sehen, ob sie wahr ist.

+0

Gute Idee !, Danke :) – Sathish

+0

Froh, dass ich helfen könnte :) – Tomer

Verwandte Themen