Problème de conception MCD et cardinalités

Laure94 Messages postés 22 Statut Membre -  
 benevole -
Bonjour,

je bloque sur mes cardinalités et la conception de mon MCD :(
je vous explique :

On a des salariés, des formateurs spécialisés dans plusieurs domaines.
Les salariés participent à des formations.
Un formateur dirige une formation à la fois.
Un salarié peut participer à une formation à la fois.
Une formation peut accueillir 10 salariés au maximum.
Un formation dure un jour.

alors pour moi ça donne ça :

FORMATEUR -----(1,n)-----SPÉCIALISER-----(1,n)-----DOMAINE
du coup SPÉCIALISER devient une table.
ensuite vient mon problème avec les formations.

SALARIE--(1,1)---(1,10)--FORMATION--(1,1)---(1,n)--FORMATEUR
|(1,1)
|(1,n)
DATE_FORMATION

En fait je ne sais pas comment gérer le fait qu'il faille entre 1 et 10 salariés pour une formation à une date donnée et qu'en même temps il y a un formateur pour cette formation à la date donnée.

Merci pour vos réponses !

4 réponses

  1. benevole
     
    Je dirai rapidement :

    [SALARIE]-(0,1)-[PARTICIPE, date_formation]-(0,10)-[FORMATION]

    [FORMATION]-(0,n)-[DIRIGE,date_formation]-(0,1)-[FORMATEUR]

    [FORMATEUR]-(1,n)-[SPECIALISE]-(0,n)-[DOMAINE]

    Donc il a une date de formation pour le salarié et une date de formation pour le formateur (et peut être une relation entre formation et domaine)
    0
  2. Laure94 Messages postés 22 Statut Membre 1
     
    Merci pour votre réponse !

    je vais analyser ça de plus prêt ^^
    0
  3. Laure94 Messages postés 22 Statut Membre 1
     
    Si on met la date de formation dans l'association, on peut avoir des données du type :

    membre_1 stage_1 10/11/2011
    membre_1 stage_2 10/11/2011
    or le salarié ne peut pas faire deux formation le même jour.

    Je voudrai savoir ce que j'ai dans mon association sous forme de table en fait ^^.

    sinon est ce qu'avec du PL SQL on peut vérifier si un salarié s'inscrit bien à une seule formation par jour ?
    0
  4. benevole
     
    En fin de compte dans la base on aura une table PARTICIPE avec 2 champs 'date_formation' et 'salarie_id' (clé de la table salarie) et il est facile en SQL de voir si un salarié est déjà inscrit pour le jour dit à une formation

    Exemple : SELECT date_formation from participe where salarie_id = ...

    si la requête renvoie 0 -> c'est bon le salarié peut s'inscrire...
    0