Como se representa en access un relación de muchos a muchos? Si en la tabla intermedia se agrega una llave primaria?

Cuando existe una relación de muchos a muchos tengo entendido que se agrega una tabla intermedia que enlaza esas dos tablas, ¿la tabla intermedia tendrán dos llaves que serán dos llaves foráneas?, ¿Es necesario colocar una llave primaria en esa tabla intermedia?

1 respuesta

Respuesta

La que comentas (tabla intermedia con las dos claves foráneas) es la forma correcta de hacer una relación muchos a muchos en access.

Lo de añadirle una clave principal a dicha tabla no es obligatorio, podrías añadirla si quisieras, pero no es necesario.

Te pongo una imagen de una BD que tengo funcionando desde hace tiempo sin problema, sin clave principal en la tabla intermedia.

OK gracias por la respuesta ha sido de gran utilidad.

Sobre la imagen que me envías , en la tabla intermedia Receta entiendo que son las llaves foráneas. Por que? en otros diagramas en access observo que esas llaves foráneas aparecen con el símbolo de llave, entiendo que a pesar de que son foráneas , lo asignan como primarias , eso es adecuado? . Y esa inquietud me dio porque en mysql cuando creo la tabla declaro en el caso del ejemplo Receta e Ingredientes como foráneas. 

Saludos

En la tabla intermedia, Receta e Ingrediente son las claves foráneas, como bien dices, pues hacen referencia a campos de otras tablas. Le podría haber llamado igual que los campos de las otras tablas (IDReceta, IDIngrediente), pero el nombre es lo de menos.

La clave principal se usa para identificar de forma única cada registro. En este caso, en la tabla TIngredRecetas podrías añadirle un nuevo campo ID (clave principal) o podrías usar las dos claves foráneas (Receta e Ingrediente) como clave principal "compuesta".

Lo que nunca podrías hacer es usar únicamente el campo Receta como clave principal, pues implicaría que cada receta sólo podría llevar un ingrediente. O lo mismo si sólo usas Ingrediente, pues un ingrediente sólo podría estar en una receta.

Yo no le veo ventaja a usar en esta tabla calves principales, por eso no las uso.

Espero que te aclarara algo, pues no soy programador y no te puedo responder de forma más "teórica"...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas