Sven Rautenberg: Bilder in Datenbank speichern?

Beitrag lesen

Moin!

mal eine grundsätzliche Frage, kann man eigentlich gifs und jpgs in einer Datenbank speichern?

Ja, kann man.

Wie müßte das Datenbankfeld deklariert sein und wie bekomme ich die Bilder in die Datenbank rein (Text kann ich ja einfach schreiben aber Bilder?)- und natüclih wieder raus?

Du legst ein BLOB-Feld an und baust Skripte, die diese Felder befüllen und auch wieder auslesen.

Ich weiß ich könnte die Bilder natürlich in einem Verzeichnis in meinem Web speichern und dann in der Datenbank einfach ein Linkfeld einfügen, wäre aber schicker wenn ich bestimmte Grafiken/Bilder direkt mit dem Datensatz speichern könnte.

Es ist nicht schicker. Es frißt enorm Performance, weil du Bilder nicht mehr direkt referenzieren kannst, sondern für jedes Bild ein Skript starten musst, welches die Bilddaten wieder aus der Datenbank ausliest. Würdest du die Bilder direkt als Datei auf dem Webserver ablegen, könnte dieser alle seine seit Jahren erfundenen Caching- und Beschleunigungsmechanismen anwenden, um die Bilder schnell an den Mann zu bringen (große Anbieter mit vielen Bildern verwenden sogar extra Bilderserver, um sie schnell auszuliefern).

Das Ausliefern eines in der Datenbank gespeicherten Bildes kann durchaus zehnmal so lange dauern, verglichen mit der klassischen Methode.

Wenn du dir selbst einen Gefallen tun willst, dann speicherst du in der Datenbank lediglich den Pfad zum Bild.

Wenn du es ganz schlau anstellst (und die Daten es hergeben), dann speicherst du nicht mal den Bildnamen, sondern benennst das Bild entsprechend der Datensatz-ID. Auf diese Weise ist das Bild aufgrund seines Namens eindeutig dem Datensatz zugeordnet.

- Sven Rautenberg