wir verwenden PosgreSQL 8.1 Datenbank in einem Projekt. Jetzt wird die Anwendung so erweitert, dass die Bilder auch gespeichert und verwaltet werden müssen.
Die Frage ist, wie realisiert man das am Besten?
Ich habe 2 Möglichkeiten gefunden:
1)Die Image Dateien werden in der Datenbank mit Hilfe der Large Object Funktionen gespeichert.
2)Die Dateien werden in einem Verzeichnis gespeichert, in der Datenbank werden der Name und das Link zur Datei abgelegt.
halten viele fuer “sexy” - wobei ich für mich als einziges Argument “PRO” das vereinfachte Backup ausmachen konnte (man hat halt alle Daten dabei) … darüber hinaus bringt mir das Ablegen der Bild-Daten in der DB keine Vorteile - abgesehen von evtl. Thumbnails.
(Ich gehe mal davon aus, dass du beliebige Bild-Daten meinst)
Ein RDBMS ist schier für sowas einfach nicht gedacht - ausserdem kann man eh nicht sinnvoll mit den Bild-Daten operieren (suchen sortieren etc) … Wenn Du natürlich deine DB um solche Funktionen erweitern möchtest - was mit PG prinzipiell geht, macht es wieder Sinn!
Wäre die einfachste Lösung - aber nicht die zeitgemäßeste. Der gravierenste Nachteil eben - separates Backup. Änderungen an den Daten gehen völlig an der DB vorbei (das kann man aber einplanen und entweder akzeptieren bzw. lösen/verhindern)
Der Nachteil wäre aber auch Vorteil - vielleicht ist fuer die DB ja ohnehin nur notwendig zu wissen “WO” das Bild liegt. Wie du das Filesystem dafür dann Organisierst gehört ja auch zum Softwaresystem dazu.
Danke für die schnelle Antwort. Im Projekt sollen die Bilder für die Artikeln und noch die Unterschriften bei den Buchungen gespeichert werden. Das sind keine großen Bilder.
Die erste Variante gefehlt mir auch aber ich fürchte, dass die DB damit aufgeblasen wird und die Perfomence der DB verloren gehen und DB langsamer wird.
Paar Fragen habe ich noch:
WelcheDokumentenbasierte Datenbanken gibt es? Wo kann ich darüber lesen?
Wie wird ein BLOB mit Lagre Object Funktionen in PostgreSQL gespeichert? In einer einzelnen Datei?
Diese Art Bilder würde ich zu Thumbnails zählen - selbst “Web-Taugliche” Bilder fallen (für mich) unter diese Kategorie. Hier darfst du auch pragmatisch sein und die Bild-Daten durchaus in der DB speichern → das macht das implementieren des Frontends beim anzeigen Einfacher.
Du solltest auch ueberlegen, ob nicht doch noch weitere Bilder oder andere Dokumente an den Artikel “gehangen” werden koennten. Dann empfiehlt es sich allerdings diese in ein DMS zu stopfen …
Es spricht absolut NICHTs dagegen beide Ansätze zu implementieren - je nach anwendungsfall im Syschdem nimmst entweder das eine (thumbs) oder das ander (DMS)
Welche > Dokumentenbasierte Datenbanken gibt es? Wo kann ich darüber lesen?
In deine Folie (“Speichern binärer Daten- Datenbanken”) gibt es zwei Listen von Datenbanken. In der ersten Liste sind die Dokumentenbasierten Datenbanken. Wofür ist die zweite Liste?
Die erste Liste sind Dokumentenbasierte Datenbanken, die sich so etwas also zur Hausaufgabe gemacht haben. Die zweite Liste sind Datenbanken, die so etwas auch können - also im Prinzip Datenbanken, die mit binären Dateien umgehen können.
Disclaimer: Diese Liste erhebt keinen Anspruch auf Vollständigkeit, aber dürfte einen guten Überblick verschaffen.
Ich stehe jetzt auch vor dem “Problem”, Bilder in der DB abzuspeichern.
Wie mein Vorgänger schon schrieb, entscheide ich mich wohl für die zweite Methode:
“2) Die Dateien werden in einem Verzeichnis gespeichert, in der Datenbank werden der Name und das Link zur Datei abgelegt.”
Wie gehe ich nun am Besten dabei vor?
Bräuchte mal eine Step-by-Step Anleitung. Ich programmiere in Visual Basic mit ASPX-Seiten.
Naja, grob gesagt Bilder hochladen, und in einem bestimmten Pfad speichern. Diese Pfad nehmen und in die DB speichern. Das sind aber eigentlich Grundlagen! Such mal bei Google, vielleicht findest Du da was.