Dica do PostgreSQL: "Joins são gratuitos" não é verdade, mas é útil. Resista à tentação de desnormalizar e só faça isso quando for absolutamente necessário devido a problemas enfrentados pelos usuários. Os desenvolvedores tentarão convencê-lo a desnormalizar "porque é mais rápido", mas sempre diga "não" até que os usuários reais reclamem.
Outro motivo pelo qual os desenvolvedores discutem sobre desnormalização versus junções é a complexidade das consultas. Eles querem escrever consultas mais limpas e legíveis, sem muitas junções. A resposta para isso é sempre alguma variação de "git gud" (aprenda SQL). Aprenda SQL. Vamos usar junções em tudo até não podermos mais.
"Basta usar um join" é um dos "Jonismos" que a @lisamahapatra sempre usa para me provocar, porque eu digo isso em todas as chamadas em que o modelo de dados está sendo discutido. Todo mundo sabe que eu vou dizer isso... Acho que eles tentam me induzir a dizer, na verdade.
@lisamahapatra Este tópico foi inspirado pelo fato de que estou atualmente realizando uma desnormalização para aumentar a velocidade. As tabelas em questão estão grandes o suficiente agora, e estáveis o suficiente em termos do modelo de dados não estar mais em fluxo, para que alguma desnormalização estratégica proporcione ganhos validáveis por EXPLAIN ANALYZEa.
@lisamahapatra Sim, as views são ótimas SE o modelo de dados for estável e se for realmente apenas um problema de experiência do desenvolvedor (DX) e não de desempenho. Quando o modelo está estabilizado e não precisamos mais da flexibilidade de escrever joins no código, então ax.com/jannotti/statu…r (para melhorar o desempenho) ou usar views (para melhorar a experiência do desenvolvedor).