Le diagramme de classes qui est un des 11 schémas UML est le schéma de base, essentiel au développement de la partie modèle d'une application JEE. Vous trouverez ci-dessous un extrait du diagramme de classes du projet Equida, avec ses règles de gestion et sa transcription en base de données.
Modèle Général
Many-To-One : Un cheval est caractérisé par une et une seule race (yearling, trotteur, pure-sang, etc…).
One-To-Many : A une race de cheval correspond plusieurs chevaux.
RACE_CHEVAL (id, libelle, description)
clé primaire : id
CHEVAL (id,nom, sexe, sire, dateNaissance, idRace)
clé primaire : id
clé étrangère : idRace en référence à id de RACE_CHEVAL
Il existe deux categories de clients ayant des propriétés communes : les acheteurs et les vendeurs
Il y a 3 solutions pour implémenter un héritage en base de données.
Solution n°1 : 1 classe seulement sera conservée pour la transformation et on créera une nouvelle table permettant de définir le type de client (acheteur ou vendeur) :
TYPE_ACHETEUR (code, libelle) clé primaire : code
La table client conservent les mêmes propriétés auxquelles on ajoutera une clé étrangère faisant référence à la clé primaire de la table ci-dessus :
CLIENT (id, titre, nom, prénom, .., idTypeAcheteur, codeTypeAcheteur) clé primaire : id clé étrangère : codeTypeAcheteur en référence à code de la table TYPE_ACHETEUR
Solution 2 : on conserve les 2 classes pour la transformation, chacune, “héritant” des propriétés de la classe mère. la notion de CLIENT disparait alors : ACHETEUR (id, titre, nom, prénom,…, adresseMessagerie) clé primaire : id
VENDEUR (id, titre, nom, prénom,…, adresseMessagerie) clé primaire : id
Solution 3 : les 3 classes seront conservées pour la transformation :
CLIENT (id, titre, nom, prénom,…, adresseMessagerie) clé primaire : id
ACHETEUR (idAcheteur) clé primaire : idAcheteur clé étrangère : idAcheteur en référence à id de la table CLIENT
VENDEUR(idVendeur) clé primaire : idVendeur clé étrangère : idVendeur en référence à id de la table CLIENT
Les sous-classes, conservent leurs propres propriétés (lorsqu'il y en a) auxquelles on ajoute une clé primaire qui sera également clé étrangère en référence à la clé primaire de la classe mère.
Un cheval participe à plusieurs courses. A une course participent plusieurs chevaux. Pour chaque course, on souhaite conserver la place à laquelle est arrivée le cheval.
CHEVAL (id,nom, sexe, sire, dateNaissance, ….) clé primaire : id
COURSE (id, nom, lieu, date) clé primaire : id
COURSE_CHEVAL (idcheval, idCourse) clé primaire : idCheval, idCourse clé étrangère : idCheval en référence à id de la table CHEVAL clé étrangère : idCourse en référence à id de la table COURSE