Dokumente in DB oder nicht

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

  • Dokumente in DB oder nicht

    Hallo,

    ich will Word-, PDF- etc. Dokumente zusammen mit Informationen auf dem Webserver ablegen. Kontrovers wird diskutiert, ob man das Dokument getrennt zur DB speichert oder in einem BLOB-Feld der DB ablegt.

    Eigentlich passiert in beiden Fällen das Gleiche: eine etwa gleiche Anzahl Bits werden von der Platte geholt, und dem User per Download angeboten. Einmal macht das readfile im anderen Fall mySQL.

    Es dürfte also nichts dagegen sprechen, das Dok in der DB zu speichern?

    Wie ist hier die vorherrschende Meinung.
    Zuletzt geändert von HSchmoll; 29.07.2006, 00:01.

  • #2
    Meine Meinung ist hier nicht vorherrschend, aber das hält mich nicht davon ab ...

    Argumente für ein Speichern von Dokumenten in der DB:
    - Volltextsuche, so das DBMS dies unterstützt
    - Clientapplikation unabhängig vom Dateisystem
    - Replikations- und Recovery-Mechanismen des DBMS
    - keine Zombiereferenzen ins Dateisystem

    Argumente dagegen:
    - fällt die DB aus, sind die Dokumente unzugänglich
    - große Datenbrocken hält DBMS nicht im RAM, also nicht schneller als Filesystem
    - Ausliefern von LOBs an Client verschlingt Resourcen
    - kompliziertere Migration/Import/Export der DB
    - komplizierteres Backup der Dokumente
    - schlechte Implementierung von LOBs bei vielen DBMS
    Zuletzt geändert von onemorenerd; 29.07.2006, 02:00.

    Kommentar


    • #3
      Danke für Deine Klarstellung. Ich interpretiere diese so, dass man es so oder so machen, je nachdem welche der Nachteile man schlucken will.

      Vielleicht hast Du dazu noch ne Idee? Im Moment speichere ich die Docs in der DB. Mit txt-Files funktioniert das einwandfrei, beim download wird der Editor gestartet und das Dokument ist unverändert.

      Ob das bei doc-Files auch so ist, weiß ich noch nicht so genau. Word wird zwar aufgerufen, stellt dann aber einen Datensalat dar. Kann es sein, dass da beim Speichern und wieder Herausholen irgendwas modifiziert wird (ich benutze mysql_real_escape_string vor dem Abspeichern des Dokuments - da werden definitiv irgendwelche Zeichen maskiert und möglicherweise nicht richtig zurückgesetzt?)

      Danke im Voraus

      Kommentar


      • #4
        Original geschrieben von HSchmoll
        (ich benutze mysql_real_escape_string vor dem Abspeichern des Dokuments - da werden definitiv irgendwelche Zeichen maskiert und möglicherweise nicht richtig zurückgesetzt?)
        nein, nur doppelt escapen solltest du nicht (d.h. wenn magic_quotes_gpc auf on steht, vorher einmal stripslashes über den Content)

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          magic_quotes_gpc steht bei mir auf "off". also wird die Datei nur einmal durch mysql_real_escape_string "ge-escaped".

          Irgend ne Idee wo das Problem noch liegen könnte?

          Kommentar


          • #6
            Original geschrieben von HSchmoll
            Irgend ne Idee wo das Problem noch liegen könnte?
            kaputte Auslieferung?

            Mach doch mal md5 auf die Daten, die aus der DB kommen und bilde den Hash von dem File, welches du in die DB gestopft hast, wenn die Hashes nicht gleich sind, liegt das Problem bei der Eingabe, wenn doch, liegt das Problem bei der Ausgabe

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Hab den Fehler dank MD5 gleich gefunden (wenn ich hier bekannt gebe, was es war, bekomme ich Forum-Verbot - zu dämlich, wenn man nicht programmieren kann, sollte man es lassen)

              Danke nochmals für den MD5 Tip - hat mir einige Zeit erspart

              Kommentar

              Lädt...
              X