Tema: Otro trigger
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/05/2012, 07:09
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Otro trigger

Existe la posibilidad de hacer eso con procedimientos almacenados (stored procedures), pero en definitiva terminas programando el mismo tipo de rutinas que harías en la aplicación, con una ENORME desventaja: el PL/SQL es más limitado que un lenguaje de programación. Tiene menos recursos, funciones y métodos que cualquier lenguaje, porque el SQL no es un lenguaje de programación, es un lenguaje de consultas.
Ten claro esto: Los SP se usan especialmente para:
- Manejar lecturas de datos muy grandes fuera de la aplicación.
- Asegurar que un error de aplicación no genere problemas de consistencia e integridad de los datos.
- Simplificar la programación de la capa de datos (DAC) de una aplicación.
- Aumentar la seguridad de la base de datos (son invulnerables a sql-injection).

Pero cuando se usan correctamente lo que haces es crear funciones específicas que permitan validar datos puntuales, no inserciones completas, ya que la validación primaria se hace siempre en la aplicación con los recursos provistos por el DAC.
¿ALguna vez has visto una aplicación en la Web donde luego de llenar toooodos los datos, te permita enviar directamente a registración?
No. Y cuando eso parece ocurrir, lo que hace (si analizas la aplicación) es que envía alguno de los datos críticos primero, como por ejemplo el username. Pero jamás regresa validando los otros datos.
¿Se comprende?
Imagínate una aplicación de alta concurrencia, con decenas de miles de entradas / hora. ¿Te parece de buena performance que en cada INSERT sea la base la que tenga que validar miles de inserciones por segundo? No, ni aunque sólo fuesen diez por hora. No es buena práctica.

Lo que se hace en las aplicaciones es reducir la cantidad de datos que el usuario debe poner manualmente (¿alguna vez lo notaste?), y los datos críticos se toman de la base y se colocan en combos de selección, o RadioButtons, CheckBox y otros, de modo que los datos a validar sean precisamente... pocos. Y el resto que sean responsabilidad del usuario.

No busques atajos. Por experiencia te digo que programar las validaciones es la parte más tediosa y hartante de una aplicación, pero cuando lo has hecho, verás que las cosas corren como seda.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)