Liste in Datei oder Datenbank



  • Hallo Zusammen,

    es ist mein erster Beitrag, ich hoffe ich habe das richtige Forum getroffen. Aktuell lerne ich C++ etwas näher kennen und arbeite an einem kleinen Backup-Tool. Es wird ein Verzeichnis angegeben, dieses wird rekursiv durchlaufen und alle Verzeichnisse und Dateien in einem Array gespeichert.

    Ich möchte zu den Dateien die Größe sowie das Änderungsdatum speichern, um dieses dann bei künftigen Programmaufrufen abzugleichen. Ziel ist es die geänderten Dateien zu finden und zu sichern.

    Jetzt stellt sich mir die Frage ob ich hierfür die Informationen in einer Datei oder einer Datenbank speichern sollte.

    Konkret wäre das:
    - Speicherort (Verzeichnis)
    - Dateiname
    - Größe (in Bytes)
    - Änderungsdatum

    Vielleicht könnt ihr mir ein paar Tipps geben, was in so einem Fall besser geeignet ist.


  • Mod

    Die Frage läuft darauf hinaus, ob du die Verwaltung der Daten übernehmen willst oder stattdessen die Verwaltung der Datenbank. Was ist dir lieber? Eine professionelle Datenbank bietet Features, die du als Solo-Hobbyist niemals selber umsetzen kannst. Wenn du andererseits keine nennenswerte Bedürfnisse an die Organisation der Daten hast (du nennst in deiner Beschreibung zumindest nichts), dann kann es sehr gut sein, dass die Grundkosten für das Verwalten der Datenbank die Kosten für die eigenständige Verwaltung der Daten weit übersteigen.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Naja, es gibt small footprint Datenbanken wie SQLite, wo sich die ganze Engine in der Applikation befindet. Möglicherweise ist die dateibasierte Speicherung der Informationen als XML oder JSON einfacher.
    Ein ausgewachsenes Standalone DBMS (MySQL, PostgreSQL, Oracle, MS SQL Server etc) ist hier aber mit Sicherheit reichlich überdimensioniert.


  • Mod

    DocShoe schrieb:

    Naja, es gibt small footprint Datenbanken wie SQLite, wo sich die ganze Engine in der Applikation befindet. Möglicherweise ist die dateibasierte Speicherung der Informationen als XML oder JSON einfacher.
    Ein ausgewachsenes Standalone DBMS (MySQL, PostgreSQL, Oracle, MS SQL Server etc) ist hier aber mit Sicherheit reichlich überdimensioniert.

    Auch die Auswahl eines geeigneten Systems ist eine Art von Verwaltungsaufwand. Allein schon in der Zeit zum Schreiben dieser paar Forenbeiträge hätte man locker ein CSV-Dateiformat implementieren können.



  • Hi,

    DocShoe schrieb:

    Naja, es gibt small footprint Datenbanken wie SQLite, wo sich die ganze Engine in der Applikation befindet.

    Ich rate in dem Fall immer zu Access, da ist die Datenbankverarbeitung schon im Betriebssystem selber enthalten (ab Win XP) der Zugriff über ADO ist einfach und comfortabel und man kann zu Wartungs- und Änderungszwecken einfach Access benutzen. Und für die Zwecke ist es absolut ausreichend.

    Möglicherweise ist die dateibasierte Speicherung der Informationen als XML oder JSON einfacher.

    Einfacher ist die dateibasierte Speicherung möglicherweise. Aber spätestens beim Abgleich mit späteren Zeitpunkten ist dann sehr sehr viel Aufwand zu betreiben, um das locker über die Bühne zu bekommen. Am ehesten wäre da noch die Speicherung in binärer Form, die man im Speicher als Feld oder besser Vektor vorhält und nur im Speicher ändert und zum Schluss als komplette Einheit wieder rausschreibt denkbar. Aber das ist alles Arbeit, die einem ein Datenbanksystem abnimmt.

    Ein ausgewachsenes Standalone DBMS (MySQL, PostgreSQL, Oracle, MS SQL Server etc) ist hier aber mit Sicherheit reichlich überdimensioniert.

    Die berühmte Kanone auf den Spatz. Aber wenn man es lernen will, ist das vielleicht die kleine Sache um sich in den Umgang mit derartigen Datenbanksystemen einzuarbeiten.

    Gruß Mümmel



  • Danke für eure Antworten.

    Zum lernen und testen werde ich erst mal ausprobieren alles in einer binären Datei zu speichern. Wenn das klappt, probiere ich noch eine andere Lösung (evtl SQLite). Eine DB-Lösung mit eigenständiger Datenbank lasse ich außen vor.


Log in to reply