Ir para conteúdo
Fórum Script Brasil
  • 0

Melhor forma para o db


Lucas Phillip

Pergunta

Olá pessoal, tudo joia?

Seguinte, eu to com uma dúvida de como estruturar meu banco de dados, para que ele fique o mais eficiente possível.

No caso, a dúvida é o seguinte: É melhor ter uma tabela com vários campos para cada registro, ou um tabela com poucos campos e salvar vários registros?

Como acho que minha pergunta esta confusa, vou tentar exemplificar :) hehe

Vamos supor que quero salvar os 100 primeiros ips que a pessoa conectar no site. O que seria mais eficiente para o banco de dados:

Id, ip1, ip2, ip3, ip4... ip100

ou

id, ip (e registrar 100 vezes o ip)

Valeu :)

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Olá pessoal, tudo joia?

Seguinte, eu to com uma dúvida de como estruturar meu banco de dados, para que ele fique o mais eficiente possível.

No caso, a dúvida é o seguinte: É melhor ter uma tabela com vários campos para cada registro, ou um tabela com poucos campos e salvar vários registros?

Como acho que minha pergunta esta confusa, vou tentar exemplificar :) hehe

Vamos supor que quero salvar os 100 primeiros ips que a pessoa conectar no site. O que seria mais eficiente para o banco de dados:

Id, ip1, ip2, ip3, ip4... ip100

ou

id, ip (e registrar 100 vezes o ip)

Valeu :)

Sem duvida nenhuma o segundo meio. Imagine se depois que você tiver estruturado seu banco chegue mais um ip. você terá que fazer um alter table e depois cadastrar o ip. da segunda forma você só precisa cadastrar o novo ip.

Outra visão imagine que a maioria de seus dados possui 50 ips em vez de 100 que só algun possuem. Você estará desperdiçando espaço em todos os outros registros só porque alguns usam 100 ips?.

Isto chama normalização e está classificado no nivel 2 de 5.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Denis, tudo joia?

Bom, com relação ao exemplo que eu dei realmente faz mais sentido fazer da segunda maneira. Acontece que meu exemplo acabou sendo mal formulado.

Ao invés de IPs, deixe-me tentar uma situação diferente.

Imagine que ao se cadastrar no site, um usuário ganhe 100 tickets para distribuir, convidando outras pessoas para entrar e, se distribuir os 100 tickets, ganhará algo extra. Nesse caso, não haveria necessidade de se utilizar alter table, pois não poderá ser distribuido mais do que 100 e uma grande quantidade de usuários (se não todos), distribuiriam os tickets, preenchendo todos os campos.

Nessa situação, ainda é melhor o segundo meio?

Valeu

Link para o comentário
Compartilhar em outros sites

  • 0
Olá Denis, tudo joia?

Bom, com relação ao exemplo que eu dei realmente faz mais sentido fazer da segunda maneira. Acontece que meu exemplo acabou sendo mal formulado.

Ao invés de IPs, deixe-me tentar uma situação diferente.

Imagine que ao se cadastrar no site, um usuário ganhe 100 tickets para distribuir, convidando outras pessoas para entrar e, se distribuir os 100 tickets, ganhará algo extra. Nesse caso, não haveria necessidade de se utilizar alter table, pois não poderá ser distribuido mais do que 100 e uma grande quantidade de usuários (se não todos), distribuiriam os tickets, preenchendo todos os campos.

Nessa situação, ainda é melhor o segundo meio?

Valeu

Sim. E, talvez, acrescentando um auto relaconamento na primeira tabela para informar que o primeiro cliente indicou o segundo e etc.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...