Mehrbenutzer-DB: Schreib- bzw. Überschreibschutz

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrbenutzer-DB: Schreib- bzw. Überschreibschutz

    Hallo,
    ich will mit PHP&mySQL eine Datenbank erstellen an der mehrere Benutzer teilweise zeitgleich am gleichen Datensatz arbeiten.

    Um konsistene Daten zubekommen würde ich so vorgehen:

    1) Wenn neuer Benutzer ändert, wird der Datensatz für alle anderen Benutzer gesperrt.
    2) Wenn der Benutzer wieder auf "Speichern" klickt, ist der Datensatz wieder freigegeben - first-come-first-serve. (weiter bei 1)
    3) Wenn der Benutzer die Maske offen lässt (nicht speichert), lasse ich einen JScript-Timer runterlaufen und speichere den Stand ab / oder breche die Aktion ab... Damit andere wieder schreiben können.

    Ist das der beste Ansatz? Oder habe ich etwas nicht bedacht...
    Danke für Hilfe oder Ideen die weiterhelfen...

    LG,
    dreman

  • #2
    Hallo,

    arbeitest du mit MySQL? Wenn ja, solltest du die DB unbedingt als InnoDB anlegen. Damit kannst du mit Transaktionen arbeiten und den Datensatz gleich beim Abrufen sperren (SELECT ... FROM ... FOR UPDATE). Was du dabei aber beachten musst, ist, dass andere Transaktionen bis zum Commit oder Rollback blockieren und dadurch ggf. die Skriptlaufzeit überschritten wird.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Beachte, der JavaScript Timer funktioniert nur, wenn a) JavaScript aktiviert ist und b) der Browser auch offen ist. Du benötigst also trotzdem eine Fallback-Lösung.

      Ansonsten wie Amica Schon sagte, versuch so viel wie möglich durch das DBMS zu handeln.

      Kommentar

      Lädt...
      X