1
resposta

Dúvidas sobre exibição de capa de jogos e banco de dados

Olá, tudo bem? Estou com algumas dúvidas, gostaria de ver com vocês. Supondo que na aplicação jogoteca tivessemos 3 categorias de jogos diferentes. Essas funções:

def recupera_imagem(id): for nome_arquivo in os.listdir(app.config['UPLOAD_PATH']): if f'capa{id}'in nome_arquivo: return nome_arquivo return 'capa.padrao.jpg'

def deleta_arquivo(id): arquivo = recupera_imagem(id) if arquivo != 'capa.padrao.jpg': os.remove(os.path.join(app.config['UPLOAD_PATH'], arquivo)) e as demais.

Desta forma não funcionaria certinho porque existem mais tabelas e consequentemente os id's iriam ser recuperados de forma errada. 

Então, o correto seria fazer uma função dessa para cada tabela com nome especifico, por ex: arquivo.save(f'{upload_path}/acao{acao.id}-{timestamp}.jpg')
arquivo.save(f'{upload_path}/aventura{aventura.id}-{timestamp}.jpg')

Seria o mais correto e profissional hoje em dia fazer assim não é? O que vocês acham de armazenamento de um segundo banco de dados só de foto? Hj em dia esta sendo considerado uma forma mais ultrapassada? 

O motivo de não se armazenar no mesmo banco de dados e porque fica oneroso não é? Mas isso seria oneroso também para pequenos sites por exemplo de loja de roupas? ou somente para lojas mais robustas como magazine luiza?
1 resposta

Olá, Patricia! Como vai?

Primeiramente, você está correta em perceber que, se houver múltiplas tabelas com IDs que podem se sobrepor, a função recupera_imagem(id) pode não funcionar corretamente. Uma solução seria, como você sugeriu, criar funções separadas para cada tabela ou categoria de jogo.

No entanto, uma alternativa mais escalável seria modificar a função para também aceitar a categoria do jogo como um argumento. Assim, você poderia distinguir entre diferentes tabelas. Por exemplo:

def recupera_imagem(id, categoria):
    for nome_arquivo in os.listdir(app.config['UPLOAD_PATH']):
        if f'capa{categoria}{id}' in nome_arquivo:
            return nome_arquivo
    return 'capa.padrao.jpg'

Em relação ao armazenamento de imagens, a decisão entre armazenar imagens no mesmo banco de dados ou em um banco de dados separado depende de vários fatores, incluindo o tamanho e a quantidade de imagens, o desempenho desejado e a complexidade da gestão de dados.

Armazenar imagens no mesmo banco de dados pode simplificar a gestão de dados, pois todas as informações estão no mesmo lugar. No entanto, isso pode tornar o banco de dados muito grande e lento para fazer backup ou restaurar.

Para sites menores ou aplicações com poucas imagens, pode ser mais simples e eficiente armazenar as imagens no mesmo banco de dados. Em aplicações maiores com muitas imagens, um banco de dados separado ou um sistema de arquivos pode ser uma melhor opção.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.