Bild-Datenbank

Hallo,

ich habe eine Frage zur Umsetzung einer Bilddatenbank, welche dazu dient, gewisse Zusatzinformationen zu Bilddateien abzuspeichern und bei einer Abfrage über die Zusatzinformationen das entsprechende Bild zurückzuliefern. Da über die Lösung der internen Speicherung der Bilder als BLOB nicht viel gutes berichtet wird (Performance,…), habe ich mich für die Speicherung der Dateinamen und -pfade als Referenz entschieden. Dies funktioniert soweit.
Nun soll über PHP auf die Bilder zugegriffen werden. Dazu habe ich eine Funktion in die Bilddatenbank implementiert, welche in Abhängigkeit einiger Parameter die Referenzinfomation (Bildpfad und -name) zurückgibt. Auch das funktioniert. Probleme könnten jedoch in der Praxis entstehen, wenn der Web-Server mit dem PHP-Programm und der Bilddatenbank-Server getrennt werden. Kann ich dann mit PHP immer noch auf die lokalen Dateien und Verzeichnisse des Bild-Datenbankservers zugreifen? (= 1.Frage)

Da ich mir darüber nicht genau sicher bin, habe ich noch eine zweite Funktion in die Bilddatenbank eingebaut, welche das Bild einliest und als Blob (bzw. OID auf den BLOB) zurückggibt. In PHP les ich den Blob mittels “lo_export” aus und exportiere ihn als temporäre Bilddatei auf dem Webserver. Das klappt zwar auch, nun stellt sich aber die Frage nach der Leistungsfähigkeit. Sind mit dieser Lösung hohe Einbrüche beim Zugriff auf die Bild-Datenbank zu erwarten, wenn man davon ausgeht, dass die Bilder höchsten 500 kByte groß sind?

Hier noch die verwendete Funktion:

CREATE OR REPLACE FUNCTION “GetPic”(picture_quality text)
RETURNS bytea AS
$BODY$DECLARE
rec RECORD; – record für FOR-Schleife
str text;
BEGIN

FOR rec IN SELECT * FROM picture WHERE picture_quality"=$1
LOOP
str := rec.picture_path || rec.picture_filename;
RETURN lo_import(str);

END LOOP;
RETURN NULL;

END;$BODY$
LANGUAGE ‘plpgsql’ VOLATILE;

DAnke! Gruß benwen

Was spräche dagegen, auf dem DB-Server einen kleinen HTTP (thttpd oder sowas) zu nutzen, der diese ja statischen Daten dann ausliefert? Das geht dann auch mit PHP.

Andreas

Dagegen spricht eigentlich nichts, manchmal kommt man auf solche naheliegenden Ideen nicht…
Ich denke die Referenzmethode bleibt die beste Methode, schon allein um die Übersicht zu behalten und das Backup zu vereinfachen. Danke für die Hilfe! Gruß benwen