Hallo!
tbl_dateien
dat_id MEDIUMINT PRIMARY KEY
obj_id MEDIUMINT
typ ENUM('gif', 'jpg', 'pdf')
beschr CHAR(128)
Das hatte ich mir auch schon überlegt. So werde ich aber Fotos folgendermaßen ablegen müßen: thumb_123.gif und foto_123.gif. Nur woher weiß ich, daß es zu einem Thumbnail ein Foto gibt oder nicht. Ich muß also ständig in den Ordner schauen. Da bin ich kein Freund von. Deshalb hatte ich mir die drei Spalten für Thumbnail, Foto und PDF-Datei überlegt. Die eindeutige datei_id generiere ich aus einer Zählertabelle (eine Spalte/Datensatz -> immer + 1) heraus.
Wenn ich den Dateityp mit abspeichere ( ENUM('gif', 'jpg', 'pdf') ) muß ich auch überprüfen, wenn Thumbnail und Foto hochgeladen wird oder eins von beiden geändert wird, ob beide den selben Dateityp haben. Das halte ich für aufwendiger, als wenn ich den Dateinamen + Dateityp (VARCHAR -> '12345.gif') mit abspeichere. Ich würde also gern dem User (geschulter Mitarbeiter) überlassen, den richtigen Dateityp zu wählen.
Aiaiai, ich mache erstmal was anderes und denke weiter nach.
genau, also würde ich mir um Performance wirklich keine Sorgen machen, lege halt nützliche Indices drauf und es wird vollkommen ausreichen, egal welche Variante Du verwendest. Verwende die Variante die Dir am besten gefällt.
So habe ich auch schon gedacht. Die eine ist besser "aufgelöst", hat aber längere SQL-Statements zur folgee, bei der anderen ist es umgekehrt.
Du brauchst aber keine varchar Spalte, CHAR tut es auch, ...
Stimmt, ist ja sonst keine Spalte vom Typ VARCHAR oder TEXT vorhanden.
MfG, André Laugks
L-Andre @ gmx.de