Replace MLD_OO

Par rapport aux posologies j'ai une question, car dans le cours 
RO Identification -> Tables d'objets en relationnel-objet
-> Tables Objets et OID -> Collection imbriquée de référence d'OID
il dise que pour faire les relations N:M on fait comme est décrit là, du coup j'ai fait comme ça pour posologie mais on pert la possibilité de mettre des contraintes sur posologie, du coup je suis pas sûr si c'est bon ou pas mais je crois c'est la meilleur façon pour acceder rapidement de Traitement aux médicaments
parent ef1b20a7
#### Notes
Tous les attributs sont NOT NULL par défaut
Tous les héritages sont exclusifs
Type ClasseEspece: <
nomClasse:string
>
#### Relationnel
tClasseEspece de ClasseEspece (#nomClasse)
Client(#idClient:int, nom: string, prenom: string, ddn: date, adresse: string, numero: int, animaux[1..*]: OID_tAnimaux) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Assistant(
#idAssistant: entier,
nom:string,
prenom: string,
ddn: date,
adresse:string,
numero:entier,
)
avec (nom,prenom,ddn) key ,(adresse,numero) NOT NULL, 0000000000 < numero < 0799999999
Veterinaire(
#idVeterinaire: entier,
nom:string,
prenom: string,
ddn: date,
adresse:string,
numero:entier,
specialite =>o tClasseEspece
)
avec (nom,prenom,ddn) key ,(adresse,numero) NOT NULL, 0100000000 < numero < 0799999999
Type Espece: <
espece:string,
ClasseEspece =>o tClasseEspece
>
tEspece de Espece(#espece) avec ClasseEspece NOT NULL
Type RefEspece : <refEspece =>o tEspece>
Type ListeRefEspece : collection de <RefEspece>
Assistant(#idAssistant: int, nom: string, prenom: string, ddn: date, adresse: string, numero: int, specialite=>o tClasseEspece) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
Type Medicament:<
nomMolec: string,
description: string,
especes: ListeRefEspece,
=espece_autoriser(string):boolean
>
Veterinaire(#idVeterinaire: int, nom: string, prenom: string, ddn: date, adresse: string, numero: int, specialite=>o tClasseEspece) avec {(nom, prenom, ddn) KEY, 0100000000 < numero < 0799999999 }
tMedicament de Medicament(#nomMolec) avec (description) NOT NULL,
{ la methode espece_autoriser() qui renvois vrai si l'animal peut prendre le médicament }
type tyClasseEspece : <nomClasse: string>
tClasseEspeces de tyClasseEspece(#nomClasse)
type tyEspece : <nomEspece: string, nomClasse=>o tClasseEspeces>
tEspeces de tyEspece(#nomEspece)
Type Posologie: <
nomMolec =>tMedicament,
debut:date,
duree:entier,
nbJours:entier
>
type tyAnimal : <idAnimal: int, nom: string, poids: float, taille: float, naissance: date, idClient=>Client(idClient), especeNom=>o tEspeces, traitements[0..*]: OID_tTraitements>
avec {poids > 0, taille > 0; naissace = (NULL OR date)}
tAnimaux de tyAnimal(#idAnimal)
Type ListePosologie : collection de <Posologie>
type tyTraitement : <idTraitement: int, idAnimal=>o tAnimaux, idVeterinaire=>Veterinaire(idVeterinaire), medicaments[1..*]: OID_tMedicaments>
tTraitements de tyTraitement(#idTraitement)
type tyMedicament: <nomMolec: string, description: string, especes[1..*]: OID_tEspeces>
avec { la methode espece_autoriser() qui renvois
vrai si l'animal peut prendre le médicament }
tMedicaments de tyMedicament(#nomMolec)
Type Traitement : <
idTraitement: entier,
idAnimal=>o tAnimal,
idVeterinaire=>Veterinaire(idVeterinaire),
l_posologie:ListePosologie
>
tEspeceMedicament(nomEspece=>o tEspeces, nomMolec=>o tMedicaments)
tTraitement de Traitement (#idTraitement) avec (idAimal,idVeterinaire) NOT NULL
Type RefTraitement : <refTraitement=>o tTraitement>
Type ListeRefTraitement : collection de <RefTraitement>
Type Animal : <
idAnimal:entier,
nom: string,
poids: float,
taille: float,
naissance: date,
espece =>o tEspece,
l_Traitements:ListeRefTraitement
>
tAnimal de Animal (#idAnimal) avec (nom,poids,taille,espece) NOT NULL,
poids>0, taille >0
Type RefAnimal : <refAnimal =>o tAnimal>
Type ListeRefAnimal : collection de <RefAnimal>
Client(
#idClient:entier,
nom:string,
prenom: string,
ddn: date,
adresse:string,
numero: entier,
animaux:ListeRefAnimal
)
avec (nom,prenom,ddn,adresse,numero) NOT NULL
Posologie(idAnimal=>o tAnimaux, nomMolec=>o tMedicaments,
#debut: date, duree: int, nbJourna: int)
avec {debut > 0, duree > 0, nbJourna > 0; debut {local key}}
#### Contraintes
<nomClasse NOT NULL> AND Projection(ClasseEspece, nomClasse) = Projection(Espece, nomClasse)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment