Knusperklumpen: PHP - Session & Objekte mehreren Nutzern zur Verfügung stellen

Hi.
Ich spiele gerade mit dem Gedanken irgendeine webbasierte Applikation zu erstellen, bei der mehrer User gleichzeitig drin rumfuhrwerken können. Was genau das ist spielt erstmal keine Rolle, sei es ein Texteditor, wo alle gleichzeitig schreiben können oder sowas.
Mir ist wichtig, dass alle Daten der Hauptapplikation für jeden Nutzer zur Verfügung stehen, die Nutzer aber noch ihre eigenen privaten Daten haben. Da bietet sich ja eine Klassenstruktur an mit Vererbung usw.
Nun aber die Frage ... wie stelle ich die Daten der Applikation allen Nutzern zur Verfügung ohne jetzt meinetwegen permanent Datenbankabfragen zu machen, in denen die Daten ja gespeichert und ausgelesen werden könnten.
Wenn man beim Beispiel Texteditor bleibt sollte der Text immer im Objekt gehalten werden aber eben so, dass alle Nutzer ihn aus dem selben Objekt lesen können. Das würde über Session gehen, aber nur, wenn alle Nutzer die gleiche Session verwenden. Sowas ist ja aber eigentlich ungewollt. Außerdem würden die privaten Daten flöten gehen, wenn alle auf die gleiche Session zugreifen.
Nur jetzt frag ich mich wie man das umsetzt und ob das überhaupt geht.

Hat da jemand ne Idee oder ist das gar nicht so kompliziert wie ich mir das denke?

mfg
Knusperklumpen

  1. Hallo,

    Hat da jemand ne Idee oder ist das gar nicht so kompliziert wie ich mir das denke?

    Letzeres würde ich meinen ;)

    Halte die privaten Daten ganz normal in einer Session und die öffentlichen Daten in einer Koordinationsdatei. Dabei würde ich ein Identifikationsmerkmal der Session beigeben, über den der User zugehörig zu einer Gruppe/Koordinationsdatei ausgemacht werden kann. So wird nur beim Erstaufruf einer solchen Gruppe eine Datenbankabfrage fällig, jedoch müssen die Daten ja irgendwo herkommen.

    Da ich ein Datenbankmuffel bin, würde ich, wie angedeutet, mit Datein arbeiten. Es steht aber außer Frage hier auch gleichwertig einen Datensatz in einer DB zu kreieren und fortfolgend diesen heranzuziehen. (Du wirst also um das Dateneinholen keinsfalls herumkommen.)

    Gruß aus Berlin!
    eddi

    1. Moin!

      Da ich ein Datenbankmuffel bin, würde ich, wie angedeutet, mit Datein arbeiten.

      Was aber bedeutet, dass du Locking implementieren mußt - und bei der beabsichtigten gleichzeitigen Bearbeitung auch noch eines, das sehr performant und wenig störend (im Arbeitsprozess) arbeitet. Es wäre beispielsweise unakzeptabel, einen Benutzer nach dem Tippen eines Zeichens zehn Sekunden warten zu lassen, weil alle anderen Benutzer auch gerade was tippen.

      Es steht aber außer Frage hier auch gleichwertig einen Datensatz in einer DB zu kreieren und fortfolgend diesen heranzuziehen. (Du wirst also um das Dateneinholen keinsfalls herumkommen.)

      Daten im RAM halten ist schneller - aber entbindet wieder mal nicht vom Locking bzw. irgendeinem Semaphorenmechanismus.

      - Sven Rautenberg

      --
      My sssignature, my preciousssss!