Integridad referencial - Evitar el borrado en cascada.

20/08/2007 - 18:56 por Juan Carlos Flores | Informe spam
Tabla Usuarios:
PKUser
User
fkGrupo

Tabla GrupoUsuarios
PKGrupo
Grupo


Planteo un ejemplo de usuarios y grupos de usuarios, como puedo evitar
el borrado de un grupo si este grupo ya tiene usuarios ?

Solo veo en la relaciones opciones de borrar los usuarios del grupo, o
borrar el grupo y no hacer nada en usuarios o borrar el grupo y dejar
como nulo el campo de FKUser de la tabla de usuarios en los uasuarios
de ese grupo.

Saludos


Preguntas similare

Leer las respuestas

#1 principiante
20/08/2007 - 19:46 | Informe spam
Tabla Usuarios:
PKUser
User
fkGrupo

Tabla GrupoUsuarios
PKGrupo
Grupo


Planteo un ejemplo de usuarios y grupos de usuarios, como puedo evitar
el borrado de un grupo si este grupo ya tiene usuarios ?




Simplemente teniendo una relacion de integridad entre las dos tablas con los
campos Usuarios.fkGrupo y GrupoUsuarios.pkgrupo.

Jose TH
Respuesta Responder a este mensaje
#2 Juan Diego Bueno
20/08/2007 - 20:49 | Informe spam
Principante, yo no entiendo tu solución. Se supone que eso ya se da por
hecho en este caso.

Juan Carlos, yo creo que para esto, podrías tener un trigger de borrado en
los grupos que haga un rollback de la operación si el citado grupo tiene ya
usuarios. Si pensamos en un borrado de varios registros, el tema es que el
rollback afectaría a toda la operación y entonces tampoco te borraría
aquellos grupos que si están vacíos.

Otra idea es usar un trigger instead of delete, de forma que hagas un delete
sólo de los grupos que no contengan resultados

Saludos
Juan Diego Bueno www.moondance.tk
"principiante" escribió en el mensaje
news:uNdG$
Tabla Usuarios:
PKUser
User
fkGrupo

Tabla GrupoUsuarios
PKGrupo
Grupo


Planteo un ejemplo de usuarios y grupos de usuarios, como puedo evitar
el borrado de un grupo si este grupo ya tiene usuarios ?




Simplemente teniendo una relacion de integridad entre las dos tablas con
los campos Usuarios.fkGrupo y GrupoUsuarios.pkgrupo.

Jose TH

Respuesta Responder a este mensaje
#3 principiante
20/08/2007 - 21:36 | Informe spam
Principante, yo no entiendo tu solución. Se supone que eso ya se da por
hecho en este caso.




Es que él preguntó: "como puedo evitar el borrado de un grupo si este grupo
ya tiene usuarios ?"

Para eso no tengo otra respuesta que la que di:

"Simplemente teniendo una relacion de integridad entre las dos tablas con
los campos Usuarios.fkGrupo y GrupoUsuarios.pkgrupo."

Que quizás él quiso decir otra cosa?, bueno... habría que ver..

Jose TH
Respuesta Responder a este mensaje
#4 Juan Diego Bueno
20/08/2007 - 22:30 | Informe spam
Yo lo que he entendido es que no quiere un borrado en cascada, es decir, que
un grupo únicamente se pueda borrar si no tiene usuarios (es decir, como
antes cuando solo podíamos borrar un directorio si estaba vacío en msdos con
del), pero la relación de integridad ya la tiene puesto que tiene la clave
foránea supuestamente enlazada con la principal de grupo.

A ver, a ver, manifiéstate Juan Carlos!!! y dinos que necesitas.

Saludos
Juan Diego Bueno www.moondance.tk

"principiante" escribió en el mensaje
news:
Principante, yo no entiendo tu solución. Se supone que eso ya se da por
hecho en este caso.




Es que él preguntó: "como puedo evitar el borrado de un grupo si este
grupo ya tiene usuarios ?"

Para eso no tengo otra respuesta que la que di:

"Simplemente teniendo una relacion de integridad entre las dos tablas con
los campos Usuarios.fkGrupo y GrupoUsuarios.pkgrupo."

Que quizás él quiso decir otra cosa?, bueno... habría que ver..

Jose TH



Respuesta Responder a este mensaje
#5 Juan Carlos Flores
20/08/2007 - 22:53 | Informe spam
Justamente eso Diego, no quiero borrar grupos de usuarios que tiene
usuarios, y entiendo que debe ser justamente la integridad referencial
la que debe proteger eso, sin embargo no encuentro donde debo
configurar eso, las relaciones solo me permiten escoger entre No
Action, Cascada, Set Null y Default.

En niguna de ellas encuentro como proteger el borrado del grupo debido
a tener usuarios, lo que necesito es poder NEGAR el borrado del grupo
si hay usuarios referidos a el mediante fkGrupo en la tabla de usuarios.

Saludos y gracias por ayudarme.


Juan Carlos Flores
Choluteca, Honduras


Juan Diego Bueno wrote:

Yo lo que he entendido es que no quiere un borrado en cascada, es
decir, que un grupo znicamente se pueda borrar si no tiene usuarios
(es decir, como antes cuando solo podmamos borrar un directorio si
estaba vacmo en msdos con del), pero la relacisn de integridad ya la
tiene puesto que tiene la clave foranea supuestamente enlazada con la
principal de grupo.

A ver, a ver, manifiistate Juan Carlos!!! y dinos que necesitas.

Saludos



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