Ir ao conteúdo

Posts recomendados

Postado

E aí gurizada, beleza? Então, tenho uma dúvida: estou criando um site de classificados e neste site, cada anúncio poderá ter um máximo de cinco fotos. A dúvida é quanto ao armazenamento destas fotos. A tabela anúncio está assim

 

#####################################################################################

# id_anuncio |  titulo  |  descricao  |  categoria  | subcategoria | id_usuario | views |  valor | data_anuncio #

#####################################################################################

 

Crio uma tabela apenas para as fotos relacionando os anúncios ou acrescento mais cinco campos à tabela anuncio referente a cada foto do anúncio?  

Postado

Se eu fosse fazer o modelo eu definia, uma tabela de fotos separada..

 

Acho melhor para gerenciar.. e como sugestão eu tirava views dessa tabela e criava uma tabela de views com o data e quantidade de views por data, assim você consegue um histórico de visualizações e dá para gerar algumas estatísticas legais

  • Curtir 3
  • Moderador
Postado

@Felipe Paz Melhor não salvar fotos no banco de dados.

Lembre que fotos são " pesadas " para consulta.  No banco, guarde apenas os dados dela, como o nome real da imagem, a url dela.. e etc.

 

Salve as imagens em um diretório no servidor.

  • Curtir 1
Postado

@bngomes Gostei da sugestão da tabela de views.

 

@DiF sim, exato. Me expressei mal, isso que quis dizer contudo, estava na dúvida quanto a criação dessas tabelas. Se armazeno "onde achar" a foto em tabela específica para isso ou juntamente na tabela de anúncio.

  • Moderador
Postado

@Felipe Paz A dica do colega ali é ótima.

A view é uma baita mão na roda para gerar relatórios.

 

Uma das formas normais, diz que quanto  mais " esmiuçado " estiver suas tabelas, maior chance de não ter inconsistências.

 

partindo desse início,  cria-se uma tabela chamada "fotos_de_anuncios"

Nesta tabela terá um campo ID auto incrementado, um campo ID_anuncio que é chave estrangeira, um campo foto

 

Ficará mais ou menos assim:

ID   ID_anuncio    foto
 1       1         cerveja.png
 2       1         fritas.png
 3       1         Tabua_frios.png
 4       1         pastel.png 
 5       1         musica_ao_vivo.png  

Cada linha é referente a uma foto do anúncio.

 

Repare que não foi registrado a URL da foto. Isso porque define-se o diretório pela linguagem de programação.

 

Então você terá uma pasta no servidor contendo as fotos, e o nome armazenado no banco de dados.

 

Com a tabela feita, relacionamentos tudo devidamente certo, você pode criar uma VIEW para juntar tudo em um lugar só para ficar melhor de fazer a consulta.

 

CREATE VIEW anuncios_completos AS
SELECT anuncios.titulo, anuncios.descricao, foto_de_anuncios.foto
FROM anuncios
INNER JOIN fotos_de_anuncios ON fotos_de_anuncios.ID_anuncio = anuncios.ID

Aí bastaria fazer um  

SELECT * FROM anuncios_completos WHERE ID = 1

View são ótimas! Mas lembre-se de sempre que quando for fazer um relacionamento, defina On cascade para Updates. assim se você muda algo em outra tabela, afeta também na tabela de views
 

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!