162 votes

Différence entre une relation de type "one-to-many" et "many-to-one".

Quelle est la différence réelle entre une relation one-to-many et many-to-one ? Elle est seulement inversée, en quelque sorte ?

Je ne trouve pas d'autre tutoriel "bon et facile à comprendre" sur ce sujet que celui-ci : SQL pour les débutants : Partie 3 - Relations entre les bases de données

1 votes

C'est une explication parfaite : fr.wikipedia.org/wiki/Many-to-many_(data_model)

0 votes

@RobertPitt en quoi l'article many-to-many est-il pertinent pour la question ? Vous vouliez probablement plutôt dire fr.wikipedia.org/wiki/One-to-many_(data_model)

148voto

Devendra D. Chavan Points 4707

Oui, c'est l'inverse. Cela dépend de quel côté de la relation l'entité est présente.

Par exemple, si un service peut employer plusieurs salariés, la relation entre le service et le salarié est une relation de type un à plusieurs (un service emploie plusieurs salariés), tandis que la relation entre le salarié et le service est une relation de type plusieurs à un (plusieurs salariés travaillent dans un service).

Plus d'informations sur les types de relations :

Relations entre les bases de données - Documentation IBM DB2

3 votes

J'ai bien peur que ça ne fasse pas de scènes ! ( PAS SÛR MAIS ) Je pense que l'ordre représente la dépendance ! N'est-ce pas ? Par exemple, un utilisateur à un rôle peut être 1 à plusieurs mais pas plusieurs à un parce qu'on ne peut pas obtenir les références de l'utilisateur qui utilise le rôle ! Est-ce que cela a un sens ?

0 votes

Peut-être relations entre bases de données maintenant ?

1 votes

Mais qu'en est-il si un employé ne peut travailler que dans un seul département ? hein ? Il n'y a pas de tel Many to One.

41voto

nathan gonzalez Points 5866

De ce page sur la terminologie des bases de données

La plupart des relations entre les tables sont de type "un vers plusieurs".

Exemple :

  • Une zone peut être l'habitat de plusieurs lecteurs.
  • Un lecteur peut avoir plusieurs abonnements.
  • Un journal peut avoir plusieurs abonnements.

Une relation Many to One est identique à la relation one to many, mais d'un point de vue différent.

  • De nombreux lecteurs vivent dans une même région.
  • Plusieurs abonnements peuvent concerner un seul et même lecteur.
  • De nombreux abonnements concernent un seul et même journal.

6voto

sqlvogel Points 12567

Il n'y a aucune différence. Ce n'est qu'une question de langage et de préférence quant au sens dans lequel vous énoncez la relation.

2 votes

Il y a certainement une différence, tant au niveau conceptuel qu'au niveau du schéma généré. Voir ma réponse : stackoverflow.com/a/37954280/179850

6 votes

@Gray. Non, ce n'est pas le cas. Votre réponse est non seulement incorrecte, mais elle embrouille les débutants (ceux qui posent cette question).

4voto

pal Points 21

La réponse à votre première question est : les deux sont similaires,

La réponse à votre deuxième question est : one-to-many --> un HOMME (table MAN) peut avoir plus d'une femme (table WOMEN) many-to-one --> plus d'une femme a épousé un HOMME.

Maintenant, si vous voulez relier cette relation avec deux tables HOMME et FEMME, une ligne de la table HOMME peut avoir plusieurs relations avec des lignes de la table FEMME. J'espère que c'est clair.

2 votes

Downvoted, vous devriez trouver un exemple plus approprié que la polygynie.

0voto

Tom Bell Points 122

Il n'y a pas de différence pratique. Utilisez simplement la relation qui a le plus de sens compte tenu de la façon dont vous voyez votre problème, comme Devendra l'a illustré.

3 votes

@Gray. Non, ce n'est pas le cas. Votre réponse est non seulement incorrecte, mais elle embrouille les débutants (ceux qui posent cette question).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X