Qual é a melhor abordagem para armazenar imagem no SQLite?
Como regra geral, e vou chegar às excepções dentro de momentos, é uma má ideia armazenar imagens directamente numa base de dados.
Porquê? Primeiro, a menos que você vá usar o banco de dados para inspecionar os internos da imagem, é apenas um pedaço de dados (e muitas vezes um bem grande) que tem que ser gerenciado pelo banco de dados, feito o backup, carted around, e retornado em consultas. O segundo sistema de arquivos é, não surpreende, bastante bem otimizado para servir arquivos. Os sistemas de arquivos de hoje fazem um trabalho muito legal de cache de arquivos usados com frequência, por exemplo
Então, se você está escrevendo um blog-engine, por exemplo, faz sentido usar o sistema de arquivos para gerenciar os arquivos e a base de dados para gerenciar os dados relacionados a eles - Em um sentido, há uma pista nos nomes - sistema de arquivos para arquivos, base de dados para dados.
Agora, isto vem com um custo - Você tem de gerir o ficheiro - talvez criando um directório que contenha ficheiros carregados, e depois um processo para os gerir (novas versões, eliminação, etc.). Mas há muitos padrões e exemplos por aí que cobrem este pequeno e bonito arquivo.
Você certamente pode fazer backups point-in-time dos sistemas de arquivos, você pode proteger esses arquivos, e - como regra e apesar da outra resposta que você teve - armazenar imagens em bancos de dados vai tornar muitas coisas mais complicadas.
Então quando você deve usar o BD para armazenar dados binários como imagens? Eu só consigo pensar em um cenário, e é aí que para fins contratuais / legais / de privacidade você precisa realmente proteger o binário, nesse caso você pode optar por armazenar o binário no db, mas isso seria definitivamente a exceção e não a regra.
Artigos semelhantes
- Qual é a melhor maneira de armazenar dados do Firebase para o SQLite (base de dados local do Android)?
- Qual é a melhor abordagem para resolver os palpites?
- Os parâmetros Thiele-Small são a melhor abordagem para projetar alto-falantes domésticos, e as aplicações de cálculo estão disponíveis?
- Qual é a abordagem da Amazon para o desenvolvimento e gestão de produtos?