cuando usar un Trigger?

07/05/2008 - 17:26 por Jorge | Informe spam
Tengo la siguiente inquietud,
Contamos con una Tabla Maestra "CasosJudiciales" que tiene un campo tipo
varchar(20) llamado "NumerodelCaso"
esta table tiene muchas tablas hijas y por proposito de reportes duplicamos
dicho campo "NumerodelCaso" en cada tabla hija (si ya sabemos que esto rompe
las reglas de estandarizacion)
ocurre que el usuario a veces se equivoca al escribir el numero del caso y
las tablas hijas no son actualizadas correctamente asi que ellas quedan con
el numero del caso errado, la pregunta es podriamos emplear Triggers para
actualizar el "numerodelcaso" en las tablas hijas? estuve leyendo hacerca de
los trigger y por lo que visto puedo crear uno al momento del update de
dicho campo.
El hecho es que no tenemos acceso a los fuentes de la aplicacion y queremos
darle una solucion a ese problemita.

gracias de antemano.
Jorge Vera
 

Leer las respuestas

#1 Leonardo Azpurua
07/05/2008 - 17:46 | Informe spam
"Jorge" escribió en el mensaje
news:4821ca59$0$12979$
Tengo la siguiente inquietud,
Contamos con una Tabla Maestra "CasosJudiciales" que tiene un campo tipo
varchar(20) llamado "NumerodelCaso"
esta table tiene muchas tablas hijas y por proposito de reportes
duplicamos dicho campo "NumerodelCaso" en cada tabla hija (si ya sabemos
que esto rompe las reglas de estandarizacion)
ocurre que el usuario a veces se equivoca al escribir el numero del caso y
las tablas hijas no son actualizadas correctamente asi que ellas quedan
con el numero del caso errado, la pregunta es podriamos emplear Triggers
para actualizar el "numerodelcaso" en las tablas hijas? estuve leyendo
hacerca de los trigger y por lo que visto puedo crear uno al momento del
update de dicho campo.
El hecho es que no tenemos acceso a los fuentes de la aplicacion y
queremos darle una solucion a ese problemita.



Hola, Jorge:

Ante todo, la aplicación debería asegurar que fuera imposible escribir mal
el número de caso.

Entiendo que el Número de Caso no es la clave primaria de la tabla
CasosJudiciales, ya que de ser así, cumpliría la función de clave foránea en
las tablas hijas, y no estarías rompiendo ninguna "regla de
estandarización".

Pero si hablas de "tablas hijas", supongo que debe existir una clave
principal en la tabla de CasosJudiciales y una clave foránea en cada una de
las tablas hijas, que permita la relación entre ellas.

Podrías usar un trigger, pero en este caso me parece más procedente un
conjunto de reglas de integridad referencial, que establezcan la
actualización en cascada desde CasosJudiciales.NumeroDelCaso sobre cada una
de las tablas hijas.

"Romper la estandarización" fue el primer mal paso, y estás a punto de dar
el segundo (si es que no ha habido otros que no vienen a cuento).

En estas condiciones no hay buen consejo que valga: si no querías definir
los reportes sobre una consulta dinámica basada en la relación entre las
tablas "hijas" y la maestra, podrías haber creado vistas y definido los
reportes sobre éstas.


Salud!

Preguntas similares