Hi, ich bastle gerade an einer Art Document Management System. Es sollen so Sachen wie Bilder, PDF Dateien oder Archive darin gespeichert werden
Ich überlege gerade, was sinnvoller ist. Die Dokumente normal im Dateisystem speichern oder als Binär Blob in einer Datenbank? Im Dateisystem könnte man vielleicht irgendwann Probleme mit der Anzahl an Dateien in einem Verzeichnis bekommen, weshalb man irgendwie eine Gruppierung in Unterverzeichnissen machen müsste.
Wie würdet ihr das machen?
Binärdaten in Datenbank oder Dateisystem
Von der Programmierung her habe ich keine Erfahrung.
Allerdings schwebt mir schon lange selbst sowas wie ein DMS vor.
Einer meiner Kernpunkte ist es auch ohne Hilfe von Zusatzsoftware an die zu verwaltenden Daten heran zu kommen. Würde also eher auf ein Ordnersystem mit Metainfos und Suchindex hinauslaufen.
Rein aus Interesse: In welchem Rahmen soll dein DMS eingesetzt werden? Was sind deine Kernpunkte?
Gruß Sebastian
Allerdings schwebt mir schon lange selbst sowas wie ein DMS vor.
Einer meiner Kernpunkte ist es auch ohne Hilfe von Zusatzsoftware an die zu verwaltenden Daten heran zu kommen. Würde also eher auf ein Ordnersystem mit Metainfos und Suchindex hinauslaufen.
Rein aus Interesse: In welchem Rahmen soll dein DMS eingesetzt werden? Was sind deine Kernpunkte?
Gruß Sebastian
Ich habe jahrelang im DMS-Bereich gearbeitet und bin zu dem Schluss gekommen, dass es eine perfekte Datenbank für Binärdaten gibt: das Filesystem.burli hat geschrieben:Ich überlege gerade, was sinnvoller ist. Die Dokumente normal im Dateisystem speichern oder als Binär Blob in einer Datenbank?
Wenn du alles komplett in der Datenbank hast, dann hast du den Vorteil der Transaktionssicherheit und du hast auch bei einem Backup keine Synchronisationsprobleme. Ich finde das Handling via Dateisystem trotzdem schöner. Andere mögen das aber durchaus anders sehen.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
werft doch mal einen Blick auf Dokumenten-basierte Datenbanken wie CouchDB oder MongoDB. Die sind für so was auch sehr gut geeignet.
Python-Bindings gibt's auch.
Gruß, noisefloor
werft doch mal einen Blick auf Dokumenten-basierte Datenbanken wie CouchDB oder MongoDB. Die sind für so was auch sehr gut geeignet.
Python-Bindings gibt's auch.
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
im letztes FreiesMagazin ist ein Artikel dazu - der gibt einen (ich hoffe guten) Überblick.
Gruß, noisefloor
im letztes FreiesMagazin ist ein Artikel dazu - der gibt einen (ich hoffe guten) Überblick.
Gruß, noisefloor
MongoDB mit GridFS wäre eine einfache Lösung. Dateisystem - gerade wenn es sehr, sehr viele Dateien sind (vgl. http://www.infoq.com/presentations/Scale-at-Facebook) ist keine gute Idee. Eine relationale DB ist dafür in der Regel auch nicht gemacht. Allerdings muss auch nicht jeder wie Facebook 2 Milliarden Bilder pro Monat speichern.
Stefan
Stefan
Sind es sehr viele große Binärdateien, dann in das Dateisystem; die Datenbank wird es dir danken. Außerdem ist dann noch ein Dump der Datenbank zu händeln.
Das Dateisystem (sogar Windoofs) wird NICHT an der Anzahl der Dateien sterben; problematisch wäre ggf. unter einigen Win die Länge des Dateipfades.
Also alles in ein Verzeichnis mit generierten eindeutigen Dateinamen (TimeStamp?), dann mußt Du nur gelegentlich mit einem kleinen (Cron-)Job aufräumen. Einfach alle löschen, die nicht in der Datenbank (durch Löschungen/Änderungen) referenziert sind.
Das Dateisystem (sogar Windoofs) wird NICHT an der Anzahl der Dateien sterben; problematisch wäre ggf. unter einigen Win die Länge des Dateipfades.
Also alles in ein Verzeichnis mit generierten eindeutigen Dateinamen (TimeStamp?), dann mußt Du nur gelegentlich mit einem kleinen (Cron-)Job aufräumen. Einfach alle löschen, die nicht in der Datenbank (durch Löschungen/Änderungen) referenziert sind.