Consejo de Postgres: "Las uniones son gratuitas" no es cierto, pero es útil. Resiste la tentación de desnormalizar y hazlo solo cuando sea absolutamente necesario debido a problemas del usuario. Los desarrolladores intentarán que desnormalices "porque es más rápido", pero siempre les dirás que no hasta que los usuarios reales se quejen.
La otra razón por la que los desarrolladores hablan tanto de desnormalizar como de usar uniones es la complejidad de las consultas. Quieren escribir consultas más limpias y legibles sin un montón de uniones. La respuesta siempre es alguna variante de "git gud". Aprende SQL. Uniremos todo hasta que sea absolutamente imposible.
"Solo usa una unión" es uno de los "jonismos" con los que @lisamahapatra siempre me toma el pelo, porque lo digo en cada llamada donde se habla del modelo de datos. Todos saben que lo voy a decir... De hecho, creo que intentan provocarme.
@lisamahapatra Este hilo se inspira en que actualmente estoy desnormalizando para aumentar la velocidad. Las tablas en cuestión son lo suficientemente grandes y estables, ya que el modelo de datos ya no está en constante cambio, como para que una desnormalización estratégica genere resultados validables mediante EXPLAIN ANALYZEa.
@lisamahapatra Sí, las vistas son geniales si el modelo de datos es estable y solo se trata de un problema de DX y no de rendimiento. Cuando el modelo está establecido y ya no necesitamos la flexibilidad de escribir uniones en el código, entonces se trata de desnormalizar (parax.com/jannotti/statu…) o de visualizar (para DX).