Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PapaSk8

inner join com 3 tables prejudica performance?

Recommended Posts

Fala ae galerinha tudo tranquilo?

 

Seguinte, estou com um projetinho de um site de veículos, minha dúvida é referente as tabelas:

 

Veículo

id - marca - modelo

 

Marca

id - marca

 

Modelo

id - marca - modelo

 

Há necessidade de existir um campo marca na tabela veículos? Tendo em vista que a relação já existe na tabela modelo com a respectiva marca...

 

A minha preocupação é que dessa forma precisarei fazer um inner join envolvendo 3 tables, isso não prejudicaria um site muito visitado, tipo webmotors?

 

Valeu ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu vejo que um veículo tem/é de um determinado modelo e cada modelo pertence à uma marca.

 

O modelo conhece a marca, mas o veículo não precisa necessariamente conhecer. Ainda mais que quando a JOIN for feita essa informação poderá vir junto sem haver um relacionamento rígido entre essas tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pela integridade referencial, acho que o ideal é não ter a marca na tabela veículos.

 

Mas o problema é que vou ter que montar uma pesquisa com filtros tipo buscapé, um innerjoin nesse caso não é bom negócio né?

 

Valeus.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom negócio ou mau negócio só você vai poder dizer.

 

Eu não sei como o Buscapé funciona. Até hoje acessei poucas vezes e site. Mas eu vejo que sem a JOIN você pode vir a ter uma certa dificuldade na manutenção.

 

Sem uma JOIN, um SELECT simples pode de repente ter vários condicionais.

 

E isso seria uma desvantagem maior do que a própria JOIN pois a cada resultado encontrado, uma verificação se a segunda, terceira, quarta, enésima condição iria se satisfazer para incluir aquele registro no ResultSet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

bom dia.

 

Não sei como você modelou a sua base.

 

Se quando você trata de modelo uqer dizer se ele é GOL, PALIO ou um CIVIC

eu vejo isso da seguinte forma:

 

Carro tem um modelo que é de uma determinada marca

sendo assim as tabelas teriam os campos:

 

CARRO - id_carro, descricao do carro (placa, cor, equipamentos, unico dono, ...), id_modelo

 

MODELO - id_modelo, descricao, id_marca

 

MARCA - id_marca, descricao

 

 

 

Com os indices certos você não terá problema algum de performance,

além de reduzir o tamanho do seu BD com informações repetidas.

 

Sem contar que suas tabelas serão pequenas, nao devem existir 1.000 modelos e 100 marcas de carros.

 

E parabéns por deixar suas tabelas normalizadas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.