Todos saben que los nuevos desarrolladores escriben funciones largas. A medida que avanza, mejora al dividir su código en partes más pequeñas y la experiencia le enseña el valor de hacerlo.
Ingrese SQL. Sí, la forma de pensar SQL sobre el código es diferente de la forma procesal de pensar sobre el código, pero este principio parece igualmente aplicable.
Digamos que tengo una consulta que toma la forma:
select * from subQuery1 inner join subQuerry2 left join subquerry3 left join join subQuery4
Usando algunas ID o fechas, etc.
Esas subconsultas son complejas y pueden contener subconsultas propias. En ningún otro contexto de programación, pensaría que la lógica para las subconsultas complejas 1-4 pertenece a mi consulta principal que las une a todas. Parece tan sencillo que esas subconsultas deberían definirse como vistas, al igual que serían funciones si estuviera escribiendo código de procedimiento.
Entonces, ¿por qué no es esa práctica común? ¿Por qué la gente suele escribir estas largas consultas SQL monolíticas? ¿Por qué SQL no fomenta el uso extensivo de vistas al igual que la programación de procedimientos alienta el uso extensivo de funciones? (En muchos entornos empresariales, crear vistas ni siquiera es algo que se pueda hacer fácilmente. Se requieren solicitudes y aprobaciones. ¡Imagínese si otros tipos de programadores tuvieran que enviar una solicitud cada vez que crean una función!)
He pensado en tres posibles respuestas:
Esto ya es común y estoy trabajando con personas sin experiencia.
Los programadores experimentados no escriben SQL complejo porque prefieren resolver problemas de procesamiento de datos con código de procedimiento
Algo más