Extra table oder nicht?
Hybrid
- datenbank
Hey Leute!
Ich habe heute angefangen einen kleinen Datei upload zu basteln. Nun habe ich aber eine frage:
Ich habe ein Formular mit mehreren Textfelder und passend zum text soll der user ein bild uploaden können.
Ist es ein problem wenn ich 1 Table mache, mit dem inhalt und dem image, oder sollte ich ein table fürs image machen und eine für den restlichen inhalt.
Wenn das letztere eher zutrifft, wie kann ich dann indentifizieren welches image zu welchem eintrag gehört?
Der image table würde ja eine id, name, und image (mit dem binary code) bekommen.
Aber wie kann ich jetzt das richtige bild, mit dem richtigen content aus dem anderen table verbinden?
Hi,
Ich habe ein Formular mit mehreren Textfelder und passend zum text soll der user ein bild uploaden können.
Ist es ein problem wenn ich 1 Table mache, mit dem inhalt und dem image, oder sollte ich ein table fürs image machen und eine für den restlichen inhalt.
*Eine* Tabelle, in die die Texte und der *Pfad* zum Bild kommen.
Das Bild selber ist im Dateisystem idR. besser untergebracht.
MfG ChrisB
hi,
Der image table würde ja eine id, name, und image (mit dem binary code) bekommen.
siehe Antwort von ChrisB, die Binary ist idR. im Dateisystem besser aufgehoben. Überlegung: Wenn das Image als Blob in der DB liegt, kriegst Du das nur "am Stück" wieder raus, hier gibt es keine Möglichkeit zu puffern. D.h., mit einer Abfrage würde das Img komplett im Hauptspeicher liegen.
Liegt es hingegen im FS, kann es gepuffert gelesen und gleich wieder ausgegeben werden (z.B.: Lese 1024 Byte, geben 1024 Byte gleich wieder aus auf STDOUT).
Zur Tabelle: Mach noch eine Spalte für den Content-Type (image/gif, image/jpeg...).
Falls Du Binaries als Base64 speichern willst, beim Upload bekommst Du ein Handle und kannst den Lesepuffer auf 3 Byte setzen (kleinstes gemeinsames Vielfaches 3*8, 4*6) um den Puffer encoden.
Hotti