Pregunta

Me gustaría mejorar mi comprensión de las restricciones de cardinalidad en los diagramas ER.

Tengo dos entidades:

  1. User
  2. Location

Sin embargo, quiero que la relación entre estas dos entidades a ser muchos-a-muchos (un usuario puede estar en muchos lugares y una ubicación puede tener muchos usuarios).

Para hacer esto lo necesario introducir un UserLocation clase de asociación.

¿Es correcto decir que ahora tengo 3 entidades?

Si tuviera que dibujar una diagam ER de lo anterior, me gustaría dibujar en la entidad UserLocation, y haría el aspecto cardinalidad de esta manera?

User 1 ------ * User Location *  ------ 1 Location
¿Fue útil?

Solución

no es necesario una tercera entidad.

En el mundo de la entidad, esto se modela como esto:

  • El Usuario entidad tiene una lista de ubicaciones.
  • La entidad Localización tiene una lista de usuarios.

En el mundo relacional, esto se modela como esto:

  • A USUARIO mesa, con la clave primaria USER_ID
  • Una ubicación de la tabla, la clave principal LOCATION_ID
  • Una USER_LOCATION mesa, con dos claves externas, una para cada una de las tablas anteriores.

Creo que en el diagrama relacional del "intermediario" no es visible. Por lo tanto, creo que se necesita algo como esto:

  

El usuario * ------- * Localización

Otros consejos

Todo depende del tipo y nivel de mapeo entitiy que está haciendo.

Se puede expresar la relación, ya que es

Entidad 1 <> Entidad 2

como el uso de las 'patas de gallo' para representar los muchos relación.

Cuando normalizar el mapa que se rompería la relaciones muchos a muchos con una tabla intermedia, esto normalmente contendría las claves primarias de ambos de las muchas mesas

Entidad 1> Entidad 3

Cuando Entidad 3 (su mesa intermedite) celebraría PK para ambas tablas, y ocasionalmente otros datos, como un identificador único, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top