24/01/2011, 13:47
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes Puntos: 2658 | |
Respuesta: error en base datos El tema del ON DELETE ASCADE se realiza para que en caso de eliminar el registro base (que para mi entender sería el registro del afiliado), los registros dependientes de él se eliminasen sin necsidad de indicarlos. Esto significa que todo registro que tenga como FK la PK del afiliado debe´tener declarada la FK como ON DELETE CASCADE ON UPDATE CASCADE.
Cuando le pones RESTICT, sucede lo contrario: No puedes borrar el registro base porque tiene registros dependientes en otras tablas.
Además, toda restricción de clave foránea implica que el registro base debe existir en su tabla antes de que se puedan ingresar registros en otas tablas donde ese valor sea FK.
En otras palabras:
- No puedes ingresar un Afiliado sin antes ingresar el Tipo y la Sede que tendrá registrados.
- No puedes ingresar una Historia, sin antes ingresar al Afiliado que figura en esa historia, y un Administrador.
- No puedes ingresar una Cita sin ingresar primero Medico e Historia.
No puedes ingresar un Médico, sin antes ingresar una Especialidad.
- No puedes registrar un estudio en Laboratorio, sin antes registrar una Cita.
Ese es el esquema de dependencias forzosas que has puesto tu al sistema.
Hay algunos tips finales:
- ¿Cada Cita sólo puede dar lugar a un único pedido de laboratorio?
- ¿Cada médico sólo puede aparecer con una única especialidad?
- ¿Existen otros tipos de estudios que surjan de una Cita?
las respuestas a estas preguntas pueden hacer que se modifique el modelo de datos completamente.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |