14/09/2010, 16:09
|
| Colaborador | | Fecha de Ingreso: febrero-2009 Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses Puntos: 360 | |
Respuesta: trigger para insertar registros en una base de datos alegorico... los triggers son una herramienta muy buena. Lo que pasa, es que no hay que abusar de su uso, porque se puede perder facilmente el control de una base de datos si se utilizan en exceso.
en que casos son ideales?
Un usuario se registra a un foro. Después de ejecutar un INSERT en la tabla usuarios, se tiene que rescatar el ID del usuario para ingresar en la tabla permisos_usuario los permisos con los que empezará su cuenta. Posterior a esto, se requiere esta misma información para una tabla estadisticas_usuario de la cual se hacen ciertos estudios de los usuarios, su regularidad y participación en el foro en el tiempo.
Si quieres hacer todo esto por programación, esto se vuelve largo y requiere de multiples viajes a la base de datos para obtener la información que se requiere. Con triggers está tarea se hace automatica dentro de la base de datos. Con solo ejecutar el primer insert, todos estos datos que mencionamos serán disparados por el evento (insert). Esto facilita mucho las cosas.
Por ejemplo, yo estoy a cargo de un sistema de reservas de vehiculos donde muestra desde la aplicación unicamente las reservas de un solo mes. la tabla ya va por los 200,000 registros (realmente esto es poco) y tengo un trigger que me inserta en una tabla historial todas las reservas que se han hecho. Con un crontab tengo una tarea que se ejecuta cada semana que me borra de la tabla principal todos los registros que tengan mas de un mes de vigencia. Esto me ofrece mayor velocidad en las consultas al tener siempre pocos registros y no estoy perdiendo ni un solo dato generado.
espero haber cambiado favorablemente tu pensamiento escéptico acerca de los triggers.
saludos
__________________ Without data, You are another person with an opinion.
W. Edwads Deming |