Question

Je voudrais améliorer ma compréhension des contraintes de cardinalité dans les diagrammes ER.

J'ai deux entités:

  1. User
  2. Location

Mais, je veux la relation entre ces deux entités d'être plusieurs à plusieurs (un utilisateur peut être dans de nombreux endroits et un emplacement peut avoir de nombreux utilisateurs).

Pour ce faire, je besoin d'introduire une classe d'association UserLocation.

Est-il exact de dire que j'ai maintenant 3 entités?

Si je devais dessiner un ER Diagam de ce qui précède, que j'attirer l'entité UserLocation, et serait le look cardinalité comme ça?

User 1 ------ * User Location *  ------ 1 Location
Était-ce utile?

La solution

Vous n'avez pas besoin d'une troisième entité.

Dans le monde d'entité, ce modèle est comme ceci:

  • L'entité utilisateur dispose d'une liste d'emplacements.
  • L'entité a une localisation liste des utilisateurs.

Dans le monde Relational, ce modèle est comme ceci:

  • Une table USER, avec USER_ID clé primaire
  • Une table emplacement, avec clé primaire LOCATION_ID
  • Une USER_LOCATION de table, avec deux clés étrangères, l'une à chacun des tableaux ci-dessus.

Je crois que dans le diagramme Relational le « intermédiaire » n'est pas visible. Donc, je pense que vous auriez besoin de quelque chose comme ceci:

  

utilisateur * ------- * Emplacement

Autres conseils

Tout dépend du type et le niveau de la cartographie entitiy que vous faites.

Vous pouvez exprimer la relation telle qu'elle est

Entité 1 <> Entité 2

Tels que l'utilisation des « pieds » pour Crows représenter le plusieurs.

Lorsque normalisant la carte que vous briser le nombre de nombreuses relations avec une table intermédiaire, ce contiendrait normalement les clés primaires des deux des nombreuses tables

Entité 1> Entité 3

Si l'entité 3 (votre table intermedite) détiendrait PK pour les deux tables, et ocassionally d'autres données, comme un identifiant unique etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top