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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 Maxi
06/02/2006 - 21:41 | Informe spam
Hola, yo no lo uso, me gusta tener a mi el control de que borrar. Esta parte
la pongo en mis Store de CRUD, por lo cual en el de Delete controlo que se
pueda borrar (en sql2000) y en sql0005 directamente borro y con Try Catch
controlo el error simple.

Un abrazo


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"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

Respuesta Responder a este mensaje
#3 Jorge Martinez
06/02/2006 - 21:57 | Informe spam
Me uno un poco a lo que han dicho los compañeros, pero te comento, si a tu
BBDD la van a "atacar" desde otras aplicaciones para hacer inserciones de
registros te aconsejo que los utilices, asi te aseguras por lo menos la
consistencia de los datos, que no es poco, y por otro lado estableces un
poco de orden a la hora de insertarlos.

SalU2


"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

Respuesta Responder a este mensaje
#4 Alejandro Mesa
06/02/2006 - 23:12 | Informe spam
Jiordie,

No hay nada de malo en eso, a la final si no dejas que SQL Server lo haga,
tendras que hacerlo tu proceduralmente. No se pierde ningun control con esto,
el control lo perdemos cuando le damos permiso a un usuario de borrar
directamente en la tabla y no atraves de un procedimiento.

Mas que questiones de gusto, le pediria a los demas miembros del grupo que
postearan situaciones o casos que esten en contra del usa de las mismas
(opciones de borrado y actualizacion en cascada).


AMB


"Jiordie" wrote:

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



Respuesta Responder a este mensaje
#5 Patrick Mac Kay
07/02/2006 - 00:52 | Informe spam
Alejandro,

a pesar de no encontrar ninguna justificación con motivos realmente
validos, es importante destacar que estamos hablando de gustos. A mi tampoco
me gusta el borrado en cascada y te reconozco que no tengo ninguna
justificación, como tampoco ninguna queja o problema detectado. Si comparto
con el resto de las personas que han dado su opinión, en que me gusta más
controlar a mi que se debe hacer y que no.

No creo que nadie puede justificar nada en contra de los eventos en cascada,
ya sea en terminos de rendmiento o funcionalidad.

Saludos.

Patrick.

"Alejandro Mesa" wrote in message
news:
Jiordie,

No hay nada de malo en eso, a la final si no dejas que SQL Server lo haga,
tendras que hacerlo tu proceduralmente. No se pierde ningun control con
esto,
el control lo perdemos cuando le damos permiso a un usuario de borrar
directamente en la tabla y no atraves de un procedimiento.

Mas que questiones de gusto, le pediria a los demas miembros del grupo que
postearan situaciones o casos que esten en contra del usa de las mismas
(opciones de borrado y actualizacion en cascada).


AMB


"Jiordie" wrote:

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



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida