Association N:M avec des collections imbriquées de références

Collection imbriquée d'OID

Il est aussi possible de gérer ces relations en utilisant une collection imbriquée de références d'OID.

ExempleAssociation N:M "suit" entre "Étudiant" et "Cours"

1
Type CoursT : <...>
2
Cours de CoursT (...)
3
4
Type RefCours : <refCours =>o Cours>
5
Type RefCoursList : collection de <RefCours>
6
Type PersonneT : <... refCours:RefCoursList ...>
7
Personne de Personne T (...)

Attention

Lorsque l'on choisit d'imbriquer la table d'association dans l'un des deux tables associées, on favorise certaines requêtes par rapport à d'autres : certaines requêtes deviennent plus facile à écrire et plus rapide à exécuter (on économise une jointure) ; d'autres au contraire deviennent plus complexes.

C'est donc l'usage des données qui oriente le choix de modélisation.

Remarque

On notera que le choix d'implémentation en collection de références à des OID nous empêche dans l'implémentation sous Oracle de définir le SCOPE FOR et donc de contraindre l'intégrité référentielle à une table en particulier.

Cela ne pose pas de problème s'il y a une seule table de ce type.