Domanda

Ho fatto una schermata di persone di manutenzione. Il cliente vuole che io per memorizzare la foto di ogni persona nel database, e ho fatto senza problemi. Ho una tabella separata per le immagini con due campi, Id_person e immagine.

Sono un po 'preoccupato perché è la prima volta che lavoro con le immagini nel database. avrò problemi di prestazioni quando la tabella cresce oltre 1000/5000 immagini? Suppongo che la dimensione di ogni immagine farà la differenza. Sono sicuro che avrò bisogno di controllare che l'utente non salvare immagini molto grandi nel database.

Quale potrebbe essere un buon limite di dimensione? Il cliente ha bisogno solo foto del volto, ma sono sicuro che qualcuno cercherà di rendere le foto con una macchina fotografica "ultimo modello" in qualità totale;)

Grazie.

È stato utile?

Soluzione

Di solito è preferito mantenere una cartella di immagini e DB solo riferimento a quella cartella. Idealmente, ogni persona ha un ID univoco ei file nella sezione "immagini" cartella corrispondere a quello ID.

Se davvero si vuole memorizzare direttamente i dati binari, è possibile ottenere una foto ragionevole qualità in 8 KB di un JPEG (qualità circa 250x250 pix @ 25%). Naturalmente, questo sarebbe inaccettabile per la stampa, ma va bene per l'identificazione.

Solo si saprà se si può accettare un 8KB aggiuntivo per riga nel server di database.

Altri suggerimenti

Se absoultely deve fare in questo modo, direi limitarla a pochi kilobyte ciascuna. Tuttavia, ogni amministratore di database nel mondo probabilmente vi dirà che blobing immagini in un campo del database è molto, molto cattiva idea. La maggior parte noticably si vedrà la diminuzione delle prestazioni drasticamente quando il file di database cresce oltre due gigabyte di dimensione.

Io preferirei fare come ha detto jheddings e avere una cartella con l'ID di ogni persona essere il nome del file e basta usare un .jpg standard o qualcosa dopo che su una condivisione di rete in modo che tutti i computer che utilizzano l'app possono accedere alle immagini.

Alcuni trovano che semplicemente utilizzando l'ID non è abbastanza buono in caso la foto ha bisogno di essere cancellati o archiviati, nel qual caso essi metteranno un campo (MAX) NVARCHAR nella loro banca dati e memorizzare il percorso del file di rete per l'immagine, invece dell'immagine effettiva.

Vorrei blob solo l'immagine se il cliente non può assolutamente avere un percorso di condivisione di rete.

finché è in tabella a parte con ID | BLOB solo lì non dovrebbe eventuali problemi di prestazioni che vanno a prendere quella foto, ma dall'altra parte preferisco mantenere nel DB solo riferimenti ai file sul disco rigido (o, meglio ancora se il suo solo user photo non avete davvero bisogno di un riferimento, perché l'utente con ID 1 va a /images/1.jpg)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top