Avancé – Relations : OneToOne, OneToMany, ManyToOne et ManyToMany

Nous allons aborder un chapître assez simple, où nous allons revenir plus en détail sur les relations. Pour cela, assurez-vous d’avoir bien compris les notions de relations et de contraintes. Si ce n’est pas le cas, vous pouvez consulter les articles qui en parlent :

Avant de commencer, précisons que le thème que nous allons traiter dans ce chapître sera présenté pour les relations binaires, mais qu’il peut également être étendu aux relations n-aires.

Préparons le terrain

Avant d’aborder plus en profondeur les relations, il vous faut apprendre une nouvelle notion. Rassurez-vous, celle-ci est simple à comprendre.

Savez-vous ce qu’on appelle l’axe d’une relation dans Generic System ?

Il s’agit du type situé à la position i de la relation, i étant le numéro de l’axe. Appliquons cela à notre relation bien connue VehicleColor.

L’axe 0 de VehicleColor est Vehicle puisqu’il est à la position 0 dans la relation.
L’axe 1 est quand à lui Color puisque situé à la position 1 de la relation.

Enfin, retenez bien 2 termes : la base désigne l’axe 0 d’une relation, les targets désignent les autres axes de la relation.
Ainsi, la target 1 est l’axe 1 de la relation, la target 2 désigne l’axe 2 de la relation, et ainsi de suite.

Les différents types de relation

Il existe 4 types de relation : OneToOne, OneToMany, ManyToOne, ManyToMany.
Nous allons voir chacune d’elles et utiliser pour cela la SingularConstraint.

Continue reading Avancé – Relations : OneToOne, OneToMany, ManyToOne et ManyToMany