Fala galera, sou novo aqui e estou com uma dúvida: tenho uma tabela com uma coluna do tipo Integer chamada"tipo", os valores dessa coluna podem ser 1, 2 3 ou 4. Quando faço uma consulta nessa tabela, filtro por essa coluna. Conversando com um amigo, ele tentou me convencer de que era mais performático para as consultas se eu tivesse 4 tabelas iguais, com menos dados, já que cada uma representaria um “tipo” da tabela que tenho hoje. Ao meu ver é pior dessa maneira, principalmente pra manutenção, sei lá. Utilizando ORM eu teria que ter 4 classes pra representar as 4 tabelas. Não vejo com bons olhos esse duplicidade rsrs
Alguém sabe se isso procede?
Valeu galera!
O que seu colega deve ter dito é sobre criar uma especialização no banco. Dessa forma, vc teria a possibilidade de trabalhar com herança para tratar essa especialização no seu código. De certa forma, seu colega tem razão. Pois, ao modelar numa especialização e utilizar classes distintas, e ao querer recuperar somente do tipo 1, por exemplo, vc iria realizar a consulta apenas para a classe do tipo 1.
Porém, essa abordagem é melhor aplicada quando há diferença nas estruturas da especialização. Como no seu caso são idênticas, acho melhor trabalhar com índices do banco para deixar agilizar as consultas.
Como voce mesmo percebeu, é uma complexidade desnecessária. Deixa uma tabela só e cria índice pra esse “tipo”. No ORM também não procure complicar se nao tiver necessidade.
4 tabelas pode ficar mais rapido que tudo em 1 se não usar indice.
Porque em uma leitura sequencial aparece a diferença.
Mas no mundo real somente em caso muito especifico, do mais não faz sentido.
Basta criar um indice e deixar tudo em 1 unica tabela.
Será melhor para desenvolvimento e manutenção.