Obermotz
Fünfzylindernazi
|
Hiho!
Hab ne Grundsatzfrage: Ist es heute bei der Webentwicklung eigentlich üblich, Bilder in der DB oder eher am FS zu speichern und in der DB die entsprechenden Referenzpfade zu speichern?
Vor/Nachteile?
Facebook zum Beispiel scheint sie ja auf dem FS liegen zu haben, OC.at scheint sie in der DB zu haben.
|
Punisher
Bukanier
|
|
Smut
takeover&ether
|
|
Lizardking
Big d00d
|
ich würde bilder/files auf jeden fall ins fs legen und nur pfad-name in die db schreiben. ich würde sagen es ist genau umgekehrt.
z.b.: http://www.overclockers.at/files/psp222_164103.png nur weil png in der url steht heißt das nicht zwingend dass dort im fs auch ein bild liegt. (php, mod_rewrite...)
|
mat
AdministratorLegends never die
|
Definitiv im Filesystem. Das Caching ist einfach weitaus besser! Das hindert dich natürlich nicht daran, parallel Referenzen in der Datenbank zu verwalten. Genau so funktioniert es auch hier im Forum, wobei wir die Funktionalität extra dazucoden mussten.
|
Rektal
Here to stay
|
Quintessenz? Beides =)
|
COLOSSUS
AdministratorGNUltra
|
Im Dateisystem - alles andere ist grober Missbrauch. Generell werden fuer viel zu viele Dinge/Use Cases RDBMS (oder solche, die es noch werden wollen  ) verwendet, wo es wirklich nicht sinnvoll oder gar noetig ist. @Smut: ein URI hat semantisch rein gar nichts damit zu tun, wie die dadurch identifizierte Rescoure "erzeugt" (bzw. ausgelesen) wird. Das ist wissentlich und willentlich in der HTTP-Spezifikation so verbrieft, und auch gut so.
|
EG
thinking with portals
|
[x] fs - dafür wurde es gemacht!
In einer Datenbank hast nur zusätzlichen Aufwand beim Reinschreiben und auslesen. Würd einfach einen Verweis (Name, ID, wie auch immer) in der Datenbank zum entsprechenden Bild am FS ablegen und den Rest der business logic überlassen.
|
Smut
takeover&ether
|
Im Dateisystem - alles andere ist grober Missbrauch. Generell werden fuer viel zu viele Dinge/Use Cases RDBMS (oder solche, die es noch werden wollen ) verwendet, wo es wirklich nicht sinnvoll oder gar noetig ist.
@Smut: ein URI hat semantisch rein gar nichts damit zu tun, wie die dadurch identifizierte Rescoure "erzeugt" (bzw. ausgelesen) wird. Das ist wissentlich und willentlich in der HTTP-Spezifikation so verbrieft, und auch gut so. Ok. Mir ists mit file-Endung bisher noch nicht anders untergekommen. Zufälligerweise hat's in dem Fall halt gepasst.
|
djonny
Addicted
|
Bin auch wie alle anderen der Meinung Bilder gehören am Filesystem abgelegt und der Pfad dorthin wird in die DB gespeichert
|
semteX
hasst die KI
|
"kommt drauf an". binärdaten in der DB haben auch vorteile, zum beispiel transaktionsunterstützung und vergleichsweise einfache versionierungsmöglichkeit. weiters bringts der mssql server mittlerweile mit FILEPART zusammen, dass das ding zwar im FS direkt abgelegt wird, die referenz drauf aber in der db liegt. bei voller transaktionsunterstützung.
|
that
Hoffnungsloser Optimist
|
"kommt drauf an". binärdaten in der DB haben auch vorteile, zum beispiel transaktionsunterstützung und vergleichsweise einfache versionierungsmöglichkeit. weiters bringts der mssql server mittlerweile mit FILEPART zusammen, dass das ding zwar im FS direkt abgelegt wird, die referenz drauf aber in der db liegt. bei voller transaktionsunterstützung. Nicht zu vergessen, dass z.B. ein Backup einer Datenbank konsistent ist, selbst wenn währenddessen heftig in die DB geschrieben wird. Wenn die Datenbank aufs Filesystem verweist, muss man sich überlegen, wie man das beim Backup so synchron hinbekommt, damit es nach dem Restore wieder zusammenpasst. Wenn man sich selbst um die Konsistenz bei Backup, Restore, Delete, Rollback usw. kümmern will, dann hat man dafür die Chance auf eine höhere Performance und weniger Troubles beim Zugriff auf die BLOBs.
|
Rektal
Here to stay
|
Sehe Ich wie semtex und that. Files sind primär in der DB und der dazwischen liegende Cache schreibt die aufs filesystem. Alles in der DB hat auch den vorteil für replikation auf andere systeme. Die frontend systeme entscheiden dann selbst wo die daten gecacht werden (fs, memcache). Gerade bilder müssen oft in verschiedenen auflösungen vorhanden sein. Original in DB, skalierte version auch mehrmals im frontend cache oder S3 oder ...
|
Neo-=IuE=-
Here to stay
|
ich glaub das hängt einfach alles sehr viel vom gewünschten verwendungszweck ab und kann nicht pauschalisiert werden
früher war es natürlich anders, weil die technik noch nicht so weit war, aber jetzt ist es wirklich anwendungs-spezifisch
|
watchout
Legendundead
|
Also für PHP/Apache würde ich - komplett Anwendungsneutral - empfehlen zumindest am FS zu Cachen, weil dann der Apache die HEAD Requests übernimmt und auch korrekt behandelt. Ansonsten siehe Rektal, that, Semtex
|