BLOB - Sinnvoll oder nicht??
Björn
- datenbank
Schönen guten Tach,
Ich habe ein eher organisatorisches Problem und durchsuche gerade das Web auf der Suche nach Erfahrungen die andere Menschen damit gemacht haben.
Im Archiv dieses Forums gibt es zwar diverse Threads zu dem Thema allerdings auch mit sehr unterschiedlichen Ansätzen, und damit verbundenen unterschiedlichen Lösungen.
Die eigentliche Frage stellt sich wie folgt:
Ich arbeite gerade an einem Onlineshop für einen Kleinbetrieb. Dieser Verfügt über ca 1500 Produkte. Nun soll natürlich in dem Shop Bilder zu diesen Produkten zu sehen sein. Die einfachste Variante scheint mir das Speichern des Bildes als BLOB zu dem jeweiligen Artikel in die DB zu sein. Die Performance dürfte dabei wahrscheinlich auch nicht sonderlich leiden, oder? Ich meine, klar....leiden tut sie sicherlich aber macht es sich in einem Ausmass bemerkbar, das man etwas dagegen tun müsste?
Ich weiß das die Lösung, nur den Pfad in die DB zu schreiben und die Bilder in einem Verzeichniss abzulegen eleganter und schneller ist aber sie ist auch etwas umständlicher zu realisieren, daher die Frage lohnt sich der Aufwand im Hinblick darauf das: Die Seite für einen Kleinbetrieb ist und dieser solche Änderungen natürlich auch bezahlen müsste.
Damit es richtig verstanden wird: Die DB existiert schon. Mit den BLOBS, und ich weiß einfach nur nicht ob ich dem Kunden dazu raten soll, dies zu ändern oder ob es realistisch gesehen egal wäre.
Vielen Dank für Anregungen und schonmal vorab ein schönes Wochende mit hoffentlich viel Sonne
mfg
Hi,
also empfohlen wird ja immer wieder die Verweise auf das Filesystem im DBMS zu halten. Denn die Performance geht wirklich in den Keller, Datensicherungen dauern wesentlich laenger und ich erinnere mich an weitere Nachteile, die ich jetzt nicht griffbereit habe.
In der Praxis kommt das von Dir ins Auge gefasste Vorgehen (BLOBs) durchaus in Frage. Die Handhabung von Bilddaten ist wesentlich komfortabler als uebers Filesystem.
Ich empfehle daher tatsaechlich mit BLOBs zu arbeiten, "wenn es geht". (Wenn es (irgendwann) nicht geht, muss man dann aber einen betraechtlichen Aufwand in Kauf nehmen).
Gruss,
Lude
ob sich der Umbau lohnt kann ich nicht beurteilen.. aber wirklich ideal ist die Lösung nicht...
siehe dazu: http://www.dclp-faq.de/q/q-db-blob.html
mfg
Michael
Moin!
Ich weiß das die Lösung, nur den Pfad in die DB zu schreiben und die Bilder in einem Verzeichniss abzulegen eleganter und schneller ist aber sie ist auch etwas umständlicher zu realisieren, daher die Frage lohnt sich der Aufwand im Hinblick darauf das: Die Seite für einen Kleinbetrieb ist und dieser solche Änderungen natürlich auch bezahlen müsste.
Wieso umständlicher?
Wenn du die Bilder in einen BLOB legst, benötigst du zum Zugriff auf die Seite zwei Skripte: Eines, welches das HTML generiert (es wird die Tatsache, dass das Bild in der DB steckt, umsetzen in irgendeine URL, welche als Parameter die Produkt- oder Bild-ID enthält), sowie ein Skript, welches die Bilder aufgrund des URL-Parameters dann aus der Datenbank fischt.
Wenn du die Bilder ins Dateisystem steckst, hast du erstens die Möglichkeit, auch ohne Datenbankskript (z.B. direkt per FTP oder SCP) die Bilder hochzuladen oder zu ändern, zweitens benötigst du kein Bilderauslieferungsskript (welches ja einiges mehr zu beachten hätte als nur Bilder auszuliefern: Status 404 ausgeben, wenn Bild nicht da ist, ordentliche Caching-Header ausgeben, gegen Mißbrauch sicher sein etc...), und drittens kann sich die Ausgabe der Bild-URL, wenn sie schlau gewählt wird, wie im ersten Fall auf die Widergabe der Produkt-ID (plus einem festen Pfad) beschränken - oder du speicherst den Bildnamen einfach in einem Textfeld in der DB. Jedenfalls muß kein zweites Skript _pro Bild_ zusätzlich aktiv werden.
Angesichts der Tatsache, dass die DB-Lösung zwei Skripte erfordert, die Filesystem-Lösung nur eines, würde ich doch behaupten, dass letztere einfacher realisierbar ist. Oder?
- Sven Rautenberg
Hi Björn,
befolge Svens Tipp. Ich eknn mittlerweile beide Vorgehensweisen. Am Anfang hatten wir die Bilder mal als BLOB in der Datenbank, aber das hat einfach zuviele Umstände gemacht.
Gruß,
Martin