Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

trigger para insertar registros en una base de datos

Estas en el tema de trigger para insertar registros en una base de datos en el foro de Bases de Datos General en Foros del Web. hola gente les comento mi intriga. hace un tiempo discutiendo con un colega asuntos de bases de datos, el me propuso una forma de hacer ...
  #1 (permalink)  
Antiguo 14/09/2010, 15:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Sonrisa trigger para insertar registros en una base de datos

hola gente les comento mi intriga.

hace un tiempo discutiendo con un colega asuntos de bases de datos, el me propuso una forma de hacer inserciones a bases de datos utilizando trigger que me sono descabellada.

el creaba un trigger para una tabla (digamos tabla_general_empleados) donde redirigia hacia otras tablas los datos que cumplian una relacion particular (tabla_maestra_empleados y tabla_detalle_empleados) segun esto se creaba datos redundantes en una tabla (con todos los campos) y en las tablas con relacion.
estos dos grupos de tablas segun su logica serian paraleas.

es esto una buena practica? segun mi logica no porque se redunda en datos duplicados pero la verdad es que no conozco mucho de bases de datos y no se si soy yo el equivocado.

alguna luz al respecto
  #2 (permalink)  
Antiguo 14/09/2010, 16:09
Avatar de huesos52
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
  #3 (permalink)  
Antiguo 14/09/2010, 16:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: trigger para insertar registros en una base de datos

veo un poco mejor el caso, si tabla_general_empleados fuera explotada de una mejor forma tendria sentido, tal como me lo ha comentado el colega es una verdadera tonteria y sin sentido su propuesta.

lo que me comentas huesos52 es lo que tengo entendido de los trigger (facilita la modificacion segun determinadas circunstancias de otros datos de otras tablas y si misma inclusive). un trigger es util tambien para evitar inconsistencia de datos.

Última edición por alegorico; 14/09/2010 a las 16:38

Etiquetas: registros, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:28.