Usermanagement

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

  • Usermanagement

    Hi,

    ich möchte in meinen Eingabemasken verhindern, dass jemand mit zwei Browserfenster, den gleichen Datensatz bearbeitet und es nachher zu
    inkonsitenzen in der Datenbank kommt.

    Wie kann ich es sicherstellen, das ein Benutzer

    a. Nur ein Browserfenster benutzt

    oder

    b. Das Eingabefenster nicht doppelt vom gleichen Benutzer angezeigt werden kann.

    vielen Dank

    Kiste24

  • #2
    wenn es um bestehende datensätze geht, kannst du zB so vorgehen:

    - leg eine tabelle an: DatensatzID|Benutzer
    - prüfe beim aufruf der edit-fkt, ob die datensatznummer in der o.g tabelle steht
      - wenn ja => "datensatz wird gerade von XY geändert"
      - wenn nein => trage den datensatz in die tabelle ein und lade das formular
    - nach dem update löscht du die datensatz-zeile wieder aus der tabelle

    ist mal nen grober ansatz
    Kissolino.com

    Kommentar


    • #3
      hmm, sponatn erdacht

      du speicherst in der session den aktuellen datensatz ( die id ). wird er ein zweites mal angeklickt, sagtse halt "is nicht"
      nach den update nicht vergessen die id aus der session zu schmeissen
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Kommentar


      • #4
        und was is mit verschiedenen benutzern an verschiedenen pcs?

        ich finde Wurzels variante nich unbedingt verkehrt
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Original geschrieben von mrhappiness
          ich finde Wurzels variante nich unbedingt verkehrt
          ich auch nicht...

          was man jedoch verbessern kann ist die tatsache, auf felder ein UNIQUE zu legen. somit kannst du IMMER einen INSERT machen. wenn ein feld oder eine feldkombination bereits vorhanden ist, meldet die DB dir dies und du kannst das abfangen.

          btw
          *VERSCHIEB* nach sql
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Original geschrieben von mrhappiness
            und was is mit verschiedenen benutzern an verschiedenen pcs?
            davon war nie die rede
            h.a.n.d.
            Schmalle

            http://impressed.by
            http://blog.schmalenberger.it



            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
            ... nur ohne :-)

            Kommentar


            • #7
              ... war ja auch nur als ansatz gedacht

              - nen timestamp wäre auch nicht schlecht für die einträge, bei denen nix geändert wurde, weil das browserfenster einfach geschlossen wurde.
              Kissolino.com

              Kommentar


              • #8
                vielen Dank für die bisherigen Beiträge und
                ich merke schon, dass es nicht so einfach ist die Datenkonsistenz bei einem Mehrbenutzerbetrieb zu gewährleisten.

                Probleme tauchen auf wenn:

                der Benutzer einfach das Fenster schliesst, ohne das der
                Datensatz wieder zum Ändern freigegeben werden konnte.

                Nach meiner Ansicht ist man auf eine Kontrollfunktion von
                der Datenbankseite angewiesen, oder die Queries werden von
                den Usern nochmal durch eine zentrale Stelle verwaltet, bevor
                diese an die Datenbank weitergegeben werden.

                Somit wäre die Benutzerebene mit der Datenbank entkoppelt und
                kontrollierbar.

                Bedeutet im allgemeinen mehr Stress beim grundlegenden Design der
                Anwendung.

                Kommentar

                Lädt...
                X