Relacion N:M

Estoy haciendo mi primera base de datos y tengo un problema que por mucho que pregunto no consigo que me solucionen. A ver si tu conoces una solución
Te explico:
Esto me pasa en varios casos pero te pongo un ejemplo. Un colegio recibe varias Publicaciones y una publicación es repartida en varios colegios. Yo, lo que he hecho, a sido hacer una tabla con 2 claves foráneas (la clave de centro y la clave de publicaciones). Las 2 son claves principales y al añadir no me da problema pero al borrar hay veces que no me deja. Lo hogo mediante 2 cuadros combinados, elijo el colegio y elijo la publicación y le doi a añadir y para borrar hago lo mismo. ¿Sabéis por qué no me deja borrar? El error que me da es el siguiente:
""Los cambios solicitados en la tabla no se Realizaron correctamente porque crearían valores duplicados en el indice, clave principal o relación. Cambie los datos en el campo o los campos que contienen datos duplicados, quite el indice o vuelva o vuelva a definir el indice para permitir entradas duplicadas e inténtelo de nuevo"
La opción de integridad referencial la tengo activada y también la opción eliminar en cascada porque si borro un centro su relación con las publicación no me interesa.
¿Cómo puedo hacer para que pueda añadir y borrar sin problemas? Si les quito a las claves ajenas la propiedad de clave primaria me funciona bien pero en ese caso el problema es que me permite tener varios registros iguales y eso tampoco lo puedo dejar así.

2 Respuestas

Respuesta
1
A ver si he entendido lo que tienes.
Por un lado una tabla de colegios con una clave principal, y por otro una de publicaciones con otra tabla principal.
Si lo tienes así te debe dejar eliminar registros sin problemas.
Si no, deberías tener los colegios en una tabla y las publicaciones en otra, y a parte una tabla que relacione las dos, y que contenga todos los campos que son clave en las dos tablas, y con un indice principal por todos los campos.
Si no te estoy ayudando me lo comentas.
Respuesta

Lo creo que se debe realizar es crear 2 tablas escuela y publicación una sera escuela llave foránea para un código de escuela (que se repite) y otro código interno código destino (que es llave principal) todo esto en TABLA ESCUELA para solo que se enlace como llave foránea dentro de TABLA PUBLICACIÓN por código de destino...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas