Ir ao conteúdo
  • Cadastre-se

MySQL modelagem de Banco MySql


Posts recomendados

Boa tarde, sou inciante em programação e estou desenvolvendo um site para cadastro de lojas e produtos.

Estou com dificuldade em modelar o banco, pois não quero sobrecarregar, e precisava de umas dicas para poder criar ele.

o funcionamento do site é para cadastrar lojas e produtos das lojas, até ai tudo bem, criei a tabela de administrador para os admins que podem modificar  e cadastrar as lojas e produtos, porém gostaria de saber se estou seguindo certo, para cada loja que eu cadastro eu tenho que criar uma tabela para essa loja e cadastrar os produtos nela, então logo se eu tiver 30 lojas terei 30 tabelas diferentes uma para cada loja, isso está certo para seguir ou preciso criar um outro banco só para as lojas?

 

caso não tenham entendido a ideia me avisem.

 

desde já agradeço. 

Link para o comentário
Compartilhar em outros sites

Olá, @alucardhc

Essa não é melhor forma de fazer. Você precisa apenas de uma tabela loja, uma tabela produto e uma tabela ligacao_loja_produto (para que você não precise colocar a informação da loja dentro da tabela produto).

Toda vez que uma loja for cadastrada, uma PK auto incrementada (chave primária) será criada para cada loja, nessa mesma tabela pode vir todos os dados da loja (Nome, Razão Social, CNPJ, Inscrição Estadual, etc), além, é claro da PK já citada, que no seu caso pode ser chamada de id_loja ou cod_loja.

Na tabela produto, você irá cadastrar os dados do produto e também uma PK para cada registro.

Já na tabela ligacao_loja_produto (por exemplo, chame como melhor lhe atender), você terá uma FK (chave estrangeira - faz ligação com uma PK) da id_loja e do seu id_produto.

Com essa estrutura você consegue fazer todo o CRUD sem problemas.

 

* Se preferir coloque uma coluna na tabela Produto, chamada fk_loja, e salve a id_loja direto no registro do produto.

 

 

Abs!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Então eu cadastro os produtos de todas as lojas em uma única tabela de produtos, por que não será o mesmo tipo de loja, por exemplo, uma loja vai ser perfumaria, a outra uma papelaria outra um mercadinho, eu crio a tabela com todas as lojas e depois uma tabela para todos os produtos é isso?

Link para o comentário
Compartilhar em outros sites

  • Moderador

@alucardhc  O ideal é você usar as Normas formais do banco de dados. Para não gerar inconsistências.

A sugestão da colega @Isador  foi boa.

 

Acrescentando, recomendo que crie tabelas para cada entidade que relaciona com produto.

Por exemplo:

Se cada loja possui um tipo de produto diferente, crie uma tabela  "tipo_produto"  onde nele consta apenas o campo ID auto incrementado e chave primária e a descrição do tipo. Esta tabela faria a relação de 1:N com a tabela produtos.

 

Outro exemplo seria quando você precisa adicionar vários telefones.  Normalmente incluímos o campo "telefone" ou "celular" na própria tabela onde consta os dados cadastrais. Porém se existe mais de um contato para aquele registro, o ideal é criar uma nova tabela para receber os telefones e de quem pertence.

 

Por exemplo:

tabela loja

ID nome               
1   lojas tabajara
2   lojas nonexist

Tabela contatos

ID    id_loja        fone
1        1          +5521981229933
2        1          +5521999334432
3        2          +5554845673123

Repare que o id_loja repete duas vezes para a loja ID 1  e uma vez para a loja ID 2.

 

Ao modelar os bancos, primeiro identifique quais entidades fazem parte. Entidades, são as tabelas e tabelas que podem ser relacionadas.

Bem, seguindo estas orientações e a da colega acima, você vai conseguir modelar bem:thumbsup:

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

OK, entendi até ai, mas a minha preocupação é se a tabela produtor ficar muito grande ela não iria ficar lenta, por exemplo, eu consiga 30 lojas e cada loja tenha em média 300 produtos, os produtos vão ter imagens, descrição, preço e assim por diante, como seria em nuvem e não local o servidor isso não deixaria lento o acesso depois de um tempo?

Link para o comentário
Compartilhar em outros sites

@alucardhc Não entendo muito dessas questões de performance de banco, mas você pode dá uma pesquisada nos temas: processamento de consultas, índices, etc. O que eu sei, é que partir do momento que você tem uma ID única para loja, o tempo de pesquisa é o mais rápido, porque o banco só vai direto nos produtos que tenham essa ID. E acredite, existem bancos bem maiores que isso. :D

 

Bons estudos,

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...