Problème de conception MCD et cardinalités

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. 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
    1. Merci pour votre réponse !

      je vais analyser ça de plus prêt ^^
      0
      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
        1. 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