5
respostas

Gravar o caminho do arquivo ou gravar o arquivo no db?

Gravar no db só o caminho do arquivo, em vez de gravar o arquivo, é um "padrao de projeto" ou pelo menos a forma considerada como boa pratica?

Ou tanto faz? Ou tem situação que é melhor gravar o arquivo direto no banco de dados? Se a resposta for SIM, pra esta ultima questão, então porque? Qual situação se aplicaria? E quais nao seria recomendado?

Antecipadamente agradeço pela resposta...

5 respostas

Bom dia Jonas, eu não armazenaria os arquivos em banco pois sempre ficam melhores armazenados em diretórios, no caso de precisar alterar o local do arquivo ou algo do tipo é muito mais fácil de manipular

Jonas, um outro ponto que é legal fazer é criar uma arvore de pastas quando for salvar este arquivo, por ex:

Ano/Mes/Dia/Arquivo

Ou até criar um hash com a nome do arquivo e separar a cada 4 chars assim mehora a sistema de busca de dos arquivos quando solicitar ao SO ao fazer o download do mesmo.

Obrigado João e Guilherme pelas suas respectivas respostas.

João, quando você diz que os arquivos ficariam melhores nas pastas, qual a explicação técnica do porque eles ficam melhor do que armazenar no db? Não faço questão de armazenar no db, apenas quero entender o conceito de ambas as formas de armazenar, pra saber o porque usar cada uma e em que momento? Pois se existe a forma menos recomendável, a que armazena direto no db, o fato de ela existir, deve ter um proposito.

Jonas,

Sempre que trabalhei com arquivos gravo em disco, na minha opinião (posso até estar falando besteira), gravar no banco requer um pouco mais de processamento pq você sempre terá de converter o blob para a file e qdo já está na rede é só um apontamento de file para file.

Espero que tenha ajudado.

Obrigado João, cada resposta sempre ajuda.

Eu preciso saber exatamente o porque, pra nao deixar pontas soltas no aprendizado da tecnologia. Ja vi outros exemplos mencionando que o melhor é gravar em diretorio, mas nunca ninguem explicou, se é melhor gravar em diretorio, entao porque tem a opcao de gravar no banco de dados. Queria saber se a opcao de gravar no banco de dados foi uma ma ideia de quem criou essa possibilidade, ou se existe um porque dela ter existido, e se ainda tem o porque dela existir.