kaepten: Wann macht eine Datenbank Sinn?

Ich möchte gerne einen Terminkalender realisieren, in welchen User eigene Termine eintragen können.

Meine Idee war anfänglich ganz einfach ein verändertes "Gästebuch" Script zu verwenden.

Nun stellen sich mir mehrere Fragen:

Macht es Sinn alle einträge statisch in ein HTML Dokument zu schreiben (wie beim Gästebuch), oder wäre eine Art Datenbank aus dessen Daten dynamisch das HTML Dokumt erstellt wird sinnvoller? Warum wäre das sinnvoller?

Wenn ich eine dynamische Variante mache, kann ich Abfragen generieren. Da diese aber sehr einfach ausfallen werden, lohnt es sich eine DB zu verwenden, oder reicht eine Textdatei?

Wie könnte ich automatisch alte Termine löschen (lassen)?

Für den Entscheidungsprozess wichtig wäre natürlich noch auch um wieviele Termine es sich handeln könnte. Leider kann ich das nicht beurteilen, aber ich rechene damit, dass es nach oben offen sein muss (ich rechne mit vielen Terminen) --> Deshalb überlege ich mir, ob ein statisches HTML Dokument nicht zu lange zum laden hätte und ich eine Einschränkung der anzeige (z.B. aktueller Monat) zum vorherein machen sollte.

Ich beabsichtige nicht spezielle Abfragen zu ermöglichen! Im maximum ev. eine Abfrage für alle Termine in einem bestimmten Monat, oder an einem bestimmten Tag - mehr nicht.

Ich weiss, ziemlich viele Fragen, aber jemand hat sich bestimmt auch schon mit ähnlichen Fragen auseinander gesetzt...

kaepten

  1. Wenn ich eine dynamische Variante mache, kann ich Abfragen generieren. Da diese aber sehr einfach ausfallen werden, lohnt es sich eine DB zu verwenden, oder reicht eine Textdatei?

    Kommt drauf an. Wenn Du nicht gerade 1000 User hast, wuerde eine Textdatei grundsaetzlich sicher genuegen - rein von der Performance.

    ABER eine Datenbank waere bequemer. Selbst als Freund von Textdatenbanken wuerde ich bei sowas eine richige DB benutzen, da sich ein SQL Befehl einfach viel leichter und fehlerfreier formulieren laesst, als wilde Such- und Aenderungsroutinen in einer Textdatei. Ganz zu schweigen vom Aufraeumen und aehnlichen Dingen.

    Viele Gruesse, Thomas Hieck

  2. Hallo kaeptn

    Macht es Sinn alle einträge statisch in ein HTML Dokument zu schreiben (wie beim Gästebuch), oder wäre eine Art Datenbank aus dessen Daten dynamisch das HTML Dokumt erstellt wird sinnvoller? Warum wäre das sinnvoller?

    Grundsätzlich ist eine Datenbank-ähnliche Lösung zu bevorzugen, weil sie flexibler und einfacher wartbar ist.

    Wenn ich eine dynamische Variante mache, kann ich Abfragen generieren. Da diese aber sehr einfach ausfallen werden, lohnt es sich eine DB zu verwenden, oder reicht eine Textdatei?

    Die Frage nach einer DB-Engine oder Textdatei richtet sich nach der Performance (bei >10'000 Datensätzen eher eine DB-Engine) und nach der Art der Datenabfrage.
    Werden die Abfragen erst dynamisch zur Laufzeit (aufgrund unterschiedlichen Formularfeldwerten) erzeugt, dann empfiehlt sich sicher eine SQL-basierende DB-Engine.
    Glücklicherweise gibt es aber auch in Perl mit den Modulen DBI und DBD::CSV die Möglichkeit über SQL auf Textdateien (komma-separierte DB-Dateien o.ä.) zuzugreifen.

    Wie könnte ich automatisch alte Termine löschen (lassen)?

    Indem Du zwar alle Datensätze in der DB hältst, jedoch bei der Publikation (Generierung des HTML-Dokumentes) nur die Termine ausgibst, die neuer als ein bestimmtes Grenzdatum sind.

    Als Beispiel kannst Du Dir das Perl-Skript "VisitorBook" von Mike Wakerly (wakerly@command-o.com) von "http://www.FreeScripts.com/" herunterladen.
    In diesem Skript werden die Einträge auch in eine Text-DB geschrieben und anschliessend als HTML-Dokument publiziert.

    Grüsse

    Thomas

    1. Danke für die Antwort!

      Glücklicherweise gibt es aber auch in Perl mit den Modulen DBI und DBD::CSV die Möglichkeit über SQL auf Textdateien (komma-separierte DB-Dateien o.ä.) zuzugreifen.

      Wo kann ich nähere Informationen (am liebsten deutsch) dazu finden?

      Als Beispiel kannst Du Dir das Perl-Skript "VisitorBook" von Mike Wakerly (wakerly@command-o.com) von "http://www.FreeScripts.com/" herunterladen.
      In diesem Skript werden die Einträge auch in eine Text-DB geschrieben und anschliessend als HTML-Dokument publiziert.

      Werde ich mal eingehend studieren. Ist ein guter Tipp! Aber soweit ich es beim überfliegen gesehen habe, werden keine Perl SQL-Abfragen verwendet, diese würden mich speziell interessieren (siehe oben)

      1. hi!

        Glücklicherweise gibt es aber auch in Perl mit den Modulen DBI und DBD::CSV die
        Möglichkeit über SQL auf Textdateien (komma-separierte DB-Dateien o.ä.) zuzugreifen.
        Wo kann ich nähere Informationen (am liebsten deutsch) dazu finden?

        perldoc DBI
        perldoc DBD::CSV

        bye, Frank!

      2. Hi Kaepten

        Wo kann ich nähere Informationen (am liebsten deutsch) dazu finden?

        In Deutsch wird es schwierig.
        Die Module findest Du auf CPAN (www.perl.com/cpan) für Unix, bzw. bei ActiveState (http://www.ActiveState.com/packages/zips/) für Windows.
        Das DBD::CSV Modul solltest Du als Bundel herunterladen. Auf jeden Fall müssen die folgenden Perlmodule installiert sein:

        • DBI 1.02
        • Text::CSV_XS 0.14 (zum lesen und schreiben der DB-Files)
        • SQL::Statement 0.1006 (als SQL-Engine)
        • DBD::CSV

        Die Dokumentation wird mit den Perlmodulen mit installiert (makefile, package-manager).

        Weitere Infos findest Du auf folgenden Sites:
        http://www.symbolstone.org/technology/perl/index.html
        http://www.wdvl.com/Authoring/DB/

        Werde ich mal eingehend studieren. Ist ein guter Tipp! Aber soweit ich es beim überfliegen gesehen habe, werden keine Perl SQL-Abfragen verwendet, diese würden mich speziell interessieren (siehe oben)

        Richtig. Im VisitorBook wird kein SQL verwendet. Der Autor schreibt das DB-Files selber und liest die Datensätze mit der split-Funktion aus.

        Grüsse

        Tom

  3. Macht es Sinn alle einträge statisch in ein HTML Dokument zu schreiben (wie beim Gästebuch), oder wäre eine Art Datenbank aus dessen Daten dynamisch das HTML Dokumt erstellt wird sinnvoller? Warum wäre das sinnvoller?

    Ich würde eine Datenbank verwenden, wenn sie Dir etwas bietet, was Du mit anderen Mitteln nicht erreichen kannst:

    • Zuverlässige Synchronisation gleichzeitiger Zugriffe
    • Integrität komplexer, voneinander abhängiger Daten
    • Ggf. um Größenordnungen kürzerer bzw. performanterer Code zum Suchen, Sortieren, Löschen etc.

    Je mehr Ansprüche Du an Deine Daten stellst, um so höher wird die Wahrscheinlichkeit, daß es sich lohnt, eine Datenbank zu verwenden (was immerhin neben dem Kaufpreis eine zusätzliche Abhängigkeit beschert).