Transformation des classes d'association
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir exprimer les propriétés des classes d'association en modèle relationnel.
Mise en situation
Supposez que vous modélisiez une plateforme de mise en relation entre des auto-entrepreneurs et des clients : chaque auto-entrepreneur peut accepter plusieurs missions, et chaque client peut travailler avec plusieurs auto-entrepreneurs.
Naturellement, en modèle conceptuel, vous utilisez une association N:M
entre client et auto-entrepreneurs : mais vous voulez aussi stocker le nom du projet, par exemple. Il faut alors stocker la propriété dans l'association directement, et vous la transformez en classe d'association.
Mais comment, en passant au modèle relationnel, représenter ces propriétés ? C'est ce que vous allez découvrir dans ce module.
Méthode : Classe d'association N:M
Les attributs de la classe d'association sont ajoutés à la table issue de l'association N:M
.
Table1 (#a, b)
Table2 (#c, d)
Assoc (#a=>Table1,#c=>Table2, e, f)
Exemple :
@startuml
skinparam defaultFontName Inconsolata
skinparam classFontStyle bold
skinparam linetype polyline
skinparam nodesep 100
hide circle
class Hotel {
nom : string {unique}
adresse : string
codePostal : string
ville : string
étoiles : integer
}
class Restaurant {
nom : string {unique}
étoiles : integer
}
Hotel "1..1" - "*" Restaurant : est-situé <
class Visiteur {
num_fidélité : integer {unique}
nom : string
prénom : string
}
class Séjour {
date : Date
}
Visiteur "*" - "*" Hotel
(Hotel, Visiteur) .. Séjour
@enduml
Hotel(#nom:string, adresse:string, codePostal:string, ville:string, étoiles:integer)
Restaurant (#nom:string, étoiles:integer, hotel=>Hotel) avec hotel non null
Visiteur(#num_fidélité:integer, nom:string, prénom:string)
Séjour(#visiteur=>Visiteur, #hotel=>Hotel, date)
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.