Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
alucardhc

MySQL modelagem de Banco MySql

Recommended Posts

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. 

Compartilhar este post


Link para o post
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!

Editado por Isador
  • Curtir 1

Compartilhar este post


Link para o post
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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
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?

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, vou dar uma estudada maior para dar continuidade, vou também usar o que vocês me passaram aqui e tentar criar algo funcional e ver como fica, agradeço a todos pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×