Announcement

Collapse
No announcement yet.

XML und Datenbanken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML und Datenbanken

    Hallo!

    Ich bin ziemlich neu was PHP, MySQL und vor allem XML betrifft.
    Als ich vor einigen Tagen verstanden habe, was XML eigentlich tut,
    vor allem in Verbindung mit PHP und dem DOM, war ich echt begeistert.
    Jetzt versuche ich herauszufinden wie ich XML für mein eigenes Projekt,
    eine Art von Filesharing System, verwenden kann.

    Aber nach einigen Recherchen war mir klar, dass XML als Ersatz für
    eine größere Datenbank ungeeignet ist. Aus den Kommentaren in
    einigen Englischen boards ist zu schließen, dass XML für kleinere
    Projekte eine wirklich gute und schöne (vllt. sogar schnellere) Alternative
    zu MySQL, etc. sein kann. Ab einer gewissen Datenmenge ändert sich das
    jedoch. Ist das korrekt?


    Jedenfalls mein Projekt soll später noch wachsen und deshalb werde
    ich für die Datenverwaltung doch eher MySQL verwenden.
    Doch soll XML was Formatierungen mit XSL betrifft ja auch ganz toll sein,
    deshalb jetzt meine Idee:

    Ich speichere die Daten aller User in eine MySQL Datenbank. Meldet sich
    ein User an, schreibt ein Skript die Daten des Users in eine XML-Datei.
    Die Daten werden dann direkt aus dem File entnommen und angezeigt.
    Nimmt der User Änderungen vor, geschieht das ebenfalls im XML code.
    Beendet der User die Session werden die Daten zurück in die Datenbank
    übertragen und der XML-File wieder gelöscht.


    Kann ich mir dadurch eine Performance Verbesserung erwarten oder
    eher das Gegenteil? Oder wäre das einfach nur sinnlos und ich sollte
    besser ganz auf XML verzichten.


    Mit freundlichen Grüßen,
    elf

  • #2
    Warum werden die Daten des Users -nach dem Holen aus der DB - nicht in der Session gespeichert?
    Wie willst du die Beendigung der Session feststellen, wenn der User sich nicht ausdrücklich abmeldet, bsp. den Browser schließt?
    Christian

    Comment


    • #3
      1. Weil ich alle Daten meine, die mit dem bestimmten User zu tun haben,
      seine eigenen Uploads, Nachrichten, etc. Wohl zu viel um sie in der Session zu speichern.
      Und das alles würde in XML sehr gut funktionieren, sowohl die Speicherung als auch dann das Layout.
      Vielleicht habe ich auch den falschen Schluss gezogen aus den Meinungen
      die ich bis jetzt zu diesem Thema gelesen habe.
      Ich dachte mir nur, bei jedem Reload wieder die Datenbank Verbindung herstellen und die Zeilen rauszufiltern würde vielleicht länger dauern, als
      wenn ich sie nur einmal lade und in einen kleineren File schreibe.

      2. Wie gesagt, ich bin noch Beginner. Aber gibt es nicht so etwas wie
      einen Timeout für Sessions?
      Wenn ein User längere Zeit nichts tut, werden die Daten zurück in die Datenbank geschrieben und der File gelöscht.

      Comment


      • #4
        Zu 1)

        Die Daten des Users, also die die zur Identifkation dienen sollten schon in der Session liegen. Weitere Daten fallen doch wohl nicht IMMER in vollem Umfang an. So dass das gezielte lesen aus der DB zu bevorzugen wäre, als das Hanfling mit einer extra Datei



        Zu 2)

        Wie willst du das feststellen, wenn ein User "längere Zeit" nichts tut? HTTP ist zusandslos. Du hast keine Verbindung zum Client.

        Bei einem Timeout für die Session wird diese ungültig. Ohne Zugriff auf den Webserver, der dann die Sessions löscht, kannst du nicht eingreifen, und ggf. noch die Daten speichern (bsp. beim Tomcat einen SessionListener implementieren)
        Christian

        Comment


        • #5
          Danke für die schnellen Antworten!

          1) Das stimmt wohl. Wie gesagt, wenn es nichts bringt, dann mach ichs nicht.
          Mir ist diese Art von Datenspeicherung nur eben sehr sympathisch, da ich das
          DOM von meiner Arbeit mit JavaScript schon gut kenne.
          Soll ich nun auf XML verzichten?

          2) Wenn beim Neuladen einer Seite der Zeitpunkt in die Datenbank gespeichert wird und man dann jede halbe Stunde nachkuckt?
          Ach, ich hab ja keine Ahnung, ich glaub dir schon, dass es nicht geht.

          Danke nochmals.

          Comment


          • #6
            Du kannst nicht alle halbe Stunde nachsehen. Aufgrund welchen Requestes willst du das machen, wenn keiner da ist.

            Du kannst bei Start deiner Anwendung einen Thread starten, der die Sessions überwacht, dann meinetwegen den letzten Zugriff testet usw. Das ist m.E. mit PHP nur schwer möglich und ohne eigenen Server überhaupt nicht machbar.
            Christian

            Comment


            • #7
              Okay, einen eigenen Server werd ich so bald nicht haben.
              Wie auch immer, du hast mich sowieso schon davon überzeugt es
              besser auf eine andere Weise ohne den temporären XML files
              umzusetzen.

              Aber da dies ja das XML forum ist, noch einmal eine Frage dazu:
              Kann ich in irgendeiner Form von XML profitieren wenn ich nicht plane
              in naher Zukunft die Daten für andere Applikationen und Plattformen
              zugänglich zu machen? (Selbst wenn, eine Umwandlung der MySQL Tabellen zu XML stellt wohl keine wirkliche Schwierigkeit da.)

              Mit PHP und MySQL direkt zu HTML ohne Umwege?
              In diesem Fall werde ich XML fürs erste mal ganz sein lassen.


              Danke!

              Comment

              Working...
              X