Il est aussi possible de gérer ces relations en utilisant une collection imbriquée de références d'OID.
Type CoursT : <...>
Cours de CoursT (...)
Type RefCours : <refCours =>o Cours>
Type RefCoursList : collection de <RefCours>
Type PersonneT : <... refCours:RefCoursList ...>
Personne de Personne T (...)
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.
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.