Paul: Wiki: DB vs. file

Moin,
ich möchte ein kleines Wiki aufbauen, welches in der letzten Ausbaustufe vielleicht so 200 Seiten/Artikel und 50 Bilder beinhalten wird. So genau kann man das bei einem Wiki halt nie sagen, da dann mehere Leute die Inhalte einstellen werden.

Meine Frage:
Wo liegen die Unterschiede (Vorteile/Nachteile) zwischen filebasierter und datenbankgestützer Wiki-Software?

Danke,
Paul

  1. Moin!

    Ist eien Suche geplant? Wie wuerdest Du die jeweils umsetzen?

    --
    Signaturen sind blöd!
    1. Wie wuerdest Du die jeweils umsetzen?

      Also mir schwebt entweder "MediaWiki" (MySQL) oder "DokuWiki" (Files) vor.
      Eine Volltextsuche ist in beiden integriert.

      By the way: ist xampp sicherheitstechnisch/overheadtechnisch für MediaWiki zu empfehlen?

      Paul

      1. By the way: ist xampp sicherheitstechnisch/overheadtechnisch für MediaWiki zu empfehlen?

        xampp ist nie zu empfehlen wenn es sich um eine produktivumgebung handelt.
        es ist nur zur Entwicklung gedacht aber da du ein fertiges Produkt verwendest solltest du einen Server ohne xampp verwenden.

        Lg

        1. xampp ist nie zu empfehlen wenn es sich um eine produktivumgebung handelt.
          es ist nur zur Entwicklung gedacht aber da du ein fertiges Produkt verwendest solltest du einen Server ohne xampp verwenden.

          Vielen Dank!

        2. Hoi!

          xampp ist nie zu empfehlen wenn es sich um eine produktivumgebung handelt.
          es ist nur zur Entwicklung gedacht aber da du ein fertiges Produkt verwendest solltest du einen Server ohne xampp verwenden.

          Das stimmt so nicht ganz. Das trifft nur auf ein xampp out of the box zu. Natuerlich kann man so eine Umgebung selbst konfigurieren und genauso absichern wie jede andere Serverumgebung mit apache, mysql, php und perl.

          --
          Signaturen sind blöd!
          1. Hallo,

            Das stimmt so nicht ganz. Das trifft nur auf ein xampp out of the box zu. Natuerlich kann man so eine Umgebung selbst konfigurieren und genauso absichern wie jede andere Serverumgebung mit apache, mysql, php und perl.

            Natürlich kann man XAMPP um konfigurieren, sodass es sicher wird aber man kann auch alles einzeln aufsetzten und hat nur das was man braucht und zwar wesentlich sicherer, da die standard Konfigurationen von Apache(ohne xampp) wesentlich weniger sicherheitslücken aufweist als die XAMPP Version.
            es ist einfach viel zu viel aufwand alles in XAMPP umzuschreiben.

            Lg

  2. Hallo,

    Meine Frage:
    Wo liegen die Unterschiede (Vorteile/Nachteile) zwischen filebasierter und datenbankgestützer Wiki-Software?

    eine Datei basierte "Datenbank" ist immer schwieriger zu handeln. besonders die Suche ist sehr schwierig, da du jede einzelne Datei durch gehen musst. Aber auch das Ändern einzelner Einträge ist aufwendiger als mit einer echten DB.

    Viele Grüße,
    Tim

    1. eine Datei basierte "Datenbank" ist immer schwieriger zu handeln. besonders die Suche ist sehr schwierig, ...

      Zur Volltextsuche siehe vorherigen Post. Und ich habe am Ende ja nur ca. 200 Seiten.

      Aber auch das Ändern einzelner Einträge ist aufwendiger als mit einer echten DB.

      Ein Versionsmanagement ist ebenfalls in beiden Wiki-Software(..s..n...?) enthalten.

  3. Moin,

    Meine Frage:
    Wo liegen die Unterschiede (Vorteile/Nachteile) zwischen filebasierter und datenbankgestützer Wiki-Software?

    Bei einem Wiki ist die Durchsuchbarkeit wichtig, die ist über eine DB recht einfach zu realisieren, allerdings muss da zur Feinabstimmung ggf. in die Serverkonfiguration eingegriffen werden, es wäre also abzuklären inwiefern das erforderlich und auch möglich ist (falls MySQL, siehe dort).

    Für die Durchsuchbarkeit von Dateien ist eine geeignete Library erforderlich, die über einen Index arbeitet, so dass nicht bei jedem Suchvorgang der ganze durchsuchbare Content (eine oder mehrere Dateien) in den Hauptspeicher geladen werden muss.

    Ein Wiki, an dem es mehrere Autoren gibt, sollte multi-user-fähig sein, d.h., hierzu gäbe es Vorkehrungen zu treffen, dass keine Race-Conditions auftreten, Stichwort 'lock', 'atomare prozesse', dies wäre bei beiden Formen der Datenhaltung zu beachten.

    Falls der gesamte Content in einer einzigen Datei gehalten wird, bei einem Update landet der komplett im Hauptspeicher, die Datei muss neu geschrieben werden. Bei einer Datenhaltung in DB sind die Datenmengen im Hauptspeicher des Webservers i.d.R. kleiner.

    Wenn Dein Server eine persistente DB-Verbindung halten kann, laufen Insert/Update sehr performant. Wenn jedoch bei jedem Aufruf der Website jedesmal eine neue DB-Verbindung aufgebaut werden muss, dauert das länger, als eine lokale Datei zu öffnen, das wäre auch abzuwägen.

    200 Seiten sind nicht viel. Eine A4-Seite mit aufgelockerten Text (Leerzeilen...) hat vielleicht 5 kB, in einer Datei hätten wir dann ~1MB und über einen geeigneten Index wird für die Suche nur ein Bruchteil davon in den RAM geladen, vielleicht ein 1/100 .. 1/50, je nach Lib.

    Die Bilder sollte in jedem Fall der Webserver bitteschön selbst aus dem Dateisystem laden.

    Interessant sind vielleicht noch abstrakte Klassen, die so beschaffen sind, dass in der Anwendung selbst nur mit Datenstrukturen/Methoden gearbeitet wird, der Code ist unabhängig von der Art der Datenhaltung.

    Hotti

    1. Bei einem Wiki ist die Durchsuchbarkeit wichtig, ...

      Volltextsuche siehe vorherige Antworten.

      Ein Wiki, an dem es mehrere Autoren gibt, sollte multi-user-fähig sein, ...

      Sind beide Wikis.

      Falls der gesamte Content in einer einzigen Datei gehalten wird, ...

      Nur die reinen Inhalte/Texte stehen in dem jeweiligen Speichermedium. Egal ob DB oder File.

      Wenn Dein Server eine persistente DB-Verbindung halten kann, ... ,das wäre auch abzuwägen.

      Danke.

      200 Seiten sind nicht viel.

      Genau

      Die Bilder sollte in jedem Fall der Webserver bitteschön selbst aus dem Dateisystem laden.

      Jupp.

      Interessant sind vielleicht noch abstrakte Klassen, die so beschaffen sind, dass in der Anwendung selbst nur mit Datenstrukturen/Methoden gearbeitet wird, der Code ist unabhängig von der Art der Datenhaltung.

      Ist mir zu hoch :-(

      1. hi,

        Interessant sind vielleicht noch abstrakte Klassen, die so beschaffen sind, dass in der Anwendung selbst nur mit Datenstrukturen/Methoden gearbeitet wird, der Code ist unabhängig von der Art der Datenhaltung.
        Ist mir zu hoch :-(

        Ok, einfaches Beispiel:
        Die Anwendung lädt eine Klasse A, die bindet für die Anwendung ein Array a. Die Anwendung greift nur in das Array a. Über den Index 'foo' wird beispielsweise die Seite 'FOO' geladen. Die Anwendung selbst weiß nicht, wo die Daten für das Array gespeichert sind, das weiß nur die Klasse A.

        Hotti

        1. Ok, einfaches Beispiel:

          Ok, vielen Dank. Jetzt bin ich wieder etwas schlauer. Allerdings sind die beiden Wikis "schon fertig" und ich will mich nicht in den Quelltext oder in die internen Strukturen einarbeiten.

          Paul

  4. Hi!

    Sieht so aus, als sei hier jeder davon ausgegangen, dass Du selbst programmieren moechtest. Aus deinem initialen Posting geht nicht hervor, dass Du dich nur zwischen zwei Wikis entscheiden willst.

    Wenn Dein Webserver ueber eine Datenbank verfuegt, ist es voellig egal. Dann geht's fuer dich nicht um filebasiert oder nicht, sondern um Features. Falls beide Systeme fuer dich identisch sind:
    Ein filebasiertes System laesst sich einfacher sichern und portieren. Fuer ein Backup kannst Du einfach das Verzeichnis kopieren und brauchst keine Kopie der Datenbank.

    --
    Signaturen sind blöd!
    1. Sieht so aus, als sei hier jeder davon ausgegangen, dass Du selbst programmieren moechtest. Aus deinem initialen Posting geht nicht hervor, dass Du dich nur zwischen zwei Wikis entscheiden willst.

      Sorry, das stimmt.

      ... ist es voellig egal ...

      Danke!