Relaciones

06/02/2006 - 21:05 por Jiordie | Informe spam
Hola a todos!

Alguien me puede orientar sobre esto?, qué tan bueno o malo es colocar en
las relaciones actualización y borrado en cascada?. si tienen un link donde
me pueda instruir acerca del tema les agradecería.

Desde ya muchas gracias
 

Leer las respuestas

#1 Guillermo Roldán
06/02/2006 - 21:33 | Informe spam
Este es un tema, para muchos, subjetivo, libre de opiniones.

Yo te puedo dar mi opinión, de modo que puedas evaluarla, junto a las
opiniones del resto de compañeros.

Personalmente, prefiero no utilizar ninguna de estas opciones. En su lugar,
utilizo dos tipos de procedimientos almacenados:
- Los que borran, ya sea en cascada, sin cascada, o muevan los elementos
(ej: mover Artículos de una Familia a otra)
- Los que comprueban que se puede borrar o mover. por cierto, utilizando
EXIST con consultas que siempre emplean índices, a poder ser, únicos
(obviamente, con cláusula WHERE apropiada).

Desde la aplicación, antes de borrar compruebo que se puede borrar, lo que
me da opción de mostrar un mensaje amigable informando al usuario de la
situación. Si es posible borrar, después de comprobar que se puede borrar,
pues borro y tan ancho que me quedo, y el único mensaje que muestro es que
la operación fué satisfactoria.

Otra cosa, es plantear que es más apropiado: borrar o dar de baja
registros... al igual, que al programar estos tipos de procedimentos, hay
que programar correctamente las transacciones.

Una ventaja, es que si todo el acceso a la BBDD es mediante procedures,
además de no utilizar las cláusulas ON DELETE CASCADE y demás, te puedes
plantear introducir cierta lógica en los mismos... Por ejemplo, una clase
Usuario en .Net puede utilizar un procedimiento GetUsuario para instanciar
un usuario de la BBDD mediante un constructor, mientras que también puede
utilizar otro procedimiento GetUsuarioWithLogin para instanciar un usuario
en otro constructor, pero en esta ocasión, comprobando la password (o su
hash) así como reflejan en un Log el intento de inicio de sesión (todo desde
el procedure).

En fin, que me salgo del tema... Saludos,
Guillermo Roldán

"Jiordie" escribió en el
mensaje news:
Hola a todos!

Alguien me puede orientar sobre esto?, qué tan bueno o malo es colocar en
las relaciones actualización y borrado en cascada?. si tienen un link
donde me pueda instruir acerca del tema les agradecería.

Desde ya muchas gracias

Preguntas similares