È stato discusso qualcosa di molto simile a cui avevo risposto, che era inevitabilmente il metodo 1. Qui puoi vedere una discussione simile:
Come aggiungere il supporto dell'immagine al client- applicazione per database server?
Se chiedi perché, la ragione fondamentale per cui preferisco il metodo web è che quando un'applicazione richiede l'immagine reale, ha un singolo punto di errore.
-
Diventa un must che finalmente il database deve recuperare. Il recupero da DB è più costoso (per altre transazioni) rispetto al recupero dal file system.
-
Di solito c'è sempre un livello server (ASP o C #) che effettivamente effettua una chiamata al DB (i client o il browser web non chiamano direttamente DB). quindi, il percorso ha un ulteriore punto di collo di bottiglia. Se c'è un URL statico (possibilmente con auth) - il browser può prelevare direttamente piuttosto che passare attraverso il server delle applicazioni.
-
Soprattutto, immagino che, quando si consegnano le immagini a molti browser (da un server web), il ridimensionamento è molto più facile in questo modo piuttosto che in un altro modo.
-
Ultimo ma la maggior parte, in molti casi, le immagini recuperate utilizzando gli URL statici, possono essere facilmente memorizzate nella cache dal browser stesso per risparmiare più risorse.
Sono d'accordo con la risposta di cui sopra e i criteri in " A BLOB o Not To BLOB "ma la maggior parte delle risposte si concentra sulla velocità di recupero e sulla dimensione del database come criterio.
Il mio punto è che ci sono criteri aggiuntivi - è la frequenza con cui le immagini cambieranno, e quando e come vogliamo fornire queste immagini è ugualmente un criterio critico.
Se il contenuto dell'immagine continua a cambiare e la logica dell'applicazione deve elaborarli prima di consegnarla, ha più senso consegnare tramite app server (vale a dire che puoi conservare in DB). Dove, come se le immagini per natura stessa fossero abbastanza statiche - non cambiano spesso e devono essere consegnate così tante volte, (imposta una volta letto / consegna molte volte), allora il web è sempre un metodo preferito. questo vale indipendentemente dalle prestazioni del DB.