Bom, uso Hibernate + JSF 2 e tenho uma Classe Usuario, onde cada usuário tem 1 foto. Sei que essa foto não deve ser armazenada no banco (para não pesar muito), então o ideal é guardar em uma pasta.
Pensei então em fazer o seguinte: Armazenar a foto em “/resources/fotos_usuarios/”, pois resources é onde ficam esses tipos de arquivos. O nome da foto sempre será o ID + FORMATO, ex: O usuário 1234 será a foto 1234.jpg e assim por diante. Dessa forma eu nem preciso ter um campo foto no banco, pois já sei que sempre será o ID + FORMATO.
O que vocês acham ? Há uma opção melhor para isso ?
Ter mais de 1000 arquivos em um diretório costuma dar problemas de desempenho em busca de arquivos. Tente dividir esse diretório em subdiretórios. A quantidade de níveis de subdiretórios depende da quantidade de arquivos - por exemplo, se você tiver um milhão de arquivos, tente criar 3 níveis (com 100 divisões cada um).
Por exemplo, em vez de guardar em /fotos, pode guardar a foto do usuário 01234567 em 76/54/32/01234567.jpg (você percebeu como dividi os nomes dos diretórios? Veja que dígitos eu peguei.)
R
rlanhellas
entendi, mas a ideia de continuar guardando com o ID + formato é válida então né ? Eu devo criar um campo na minha classe chamado : String foto que retorna o caminho da foto completo ?
R
rlira
Um cadastro de usuário geralmente não tem tantos registros assim então guardar a foto no banco não acredito que seja má ideia, já um cadastro de colaboradores… bem ai muda.
Eu mantenho um cadastro de produto onde um arquivo de imagem tem entre 24 e 30 kb e guardo a imagem no banco.
E
entanglement
É isso mesmo. Como normalmente há poucos usuários em um sistema (por exemplo, o GUJ tem 160.000 usuários registrados, mas duvido que mais de 10% deles tenham foto) muitas vezes manter a foto no próprio banco (como um blob) é suficiente.
R
rlanhellas
Bom, mas no meu caso não vou guardar foto só de usuário, vou guardar fotos de Pacientes também (que podem ser milhares). E mesmo que alguns poucos apenas (10%) tenham fotos, temos que pensar que 90% podem ter fotos ae o banco vai ficar super pesado.
R
rlira
Vc esta certo rlanhellas
Meu comentario na verdade se não pareceu tem um proposito de que em alguns casos podemos ter a imagem no banco, já em outro caso como gerenciar documentos, fotos, arquivo, pdf ficam fora do banco.
R
rlanhellas
Bom, de qualquer forma agradeço a atenção de todos.