IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Diagrammes de Classes Discussion :

Aide diagramme de classe PFE


Sujet :

Diagrammes de Classes

  1. #21
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonjour supras,


    Concernant les affectations des employés aux projets :

    Citation Envoyé par supras31 Voir le message
    la logique me dit que on peut trouver des employés qui ont les compétences requises pour un projet mais ils ne seront pas affectés à ce projet car ils ne sont pas disponibles
    Autrement dit, apparaît la notion de date d’affectation d’un employé à un projet. On va donc définir une association entre PROJET et EMPLOYE, et une classe-association PROJET_EMPLOYE, porteuse de la période d’affectation de l’employé au projet. La classe PROJET_COMPETENCE_EMPLOYE est alors reliée à PROJET_EMPLOYE par une relation de composition.

    DC :




    MLD (après les aménagements d’usage) :

    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  2. #22
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Script SQL de création des tables
    Script SQL de création des tables :

    
    CREATE TABLE COMPETENCE 
    (
       id_competence        Int                  Not null,
       libelle_competence   Varchar(64)          Not null,
       CONSTRAINT COMPETENCE_PK PRIMARY KEY (id_competence)
    ) ;
    
    CREATE TABLE FONCTION 
    (
       id_fonction          INT                  NOT NULL,
       libelle_fonction     VARCHAR(64)          NOT NULL,
       CONSTRAINT FONCTION_PK PRIMARY KEY (id_fonction)
    ) ;
    
    CREATE TABLE EQUIPE 
    (
       id_equipe            Int                  Not null,
       nom_equipe           Varchar(64)          Not null,
       disponibilite        Varchar(64)          Not null,
       CONSTRAINT EQUIPE_PK PRIMARY KEY (id_equipe)
    ) ;
    
    CREATE TABLE EMPLOYE 
    (
       id_equipe            Int                  Not null,
       id_employe           Int                  Not null,
       matricule            Varchar(5)           Not null,
       nom_employe          Varchar(64)          Not null,
       prenom_employe       Varchar(64)          Not null,
       date_embauche        Date                 Not null,
       grade                Varchar(3)           Not null,
       CONSTRAINT EMPLOYE_PK PRIMARY KEY (id_equipe, id_employe),
       CONSTRAINT EMPLOYE_AK UNIQUE (matricule),
       CONSTRAINT EMPLOYE_EQUIPE_FK FOREIGN KEY (id_equipe)
          REFERENCES EQUIPE (id_equipe)
    ) ;
    
    CREATE TABLE CHEF_DE_PROJET 
    (
       id_equipe            Int                  Not null,
       id_employe           Int                  Not null,
       CONSTRAINT CHEF_DE_PROJET_PK PRIMARY KEY (id_equipe, id_employe),
       CONSTRAINT CHEF_DE_PROJET_EMPLOYE_FK FOREIGN KEY (id_equipe, id_employe)
          REFERENCES EMPLOYE( id_equipe, id_employe)
    ) ;
    
    CREATE TABLE PROJET 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       code_projet          char(3)              Not Null,
       id_employe_chef      Int                  Not null,
       nom_projet           Varchar(64)          Not null,
       date_debut_projet    Date                 Not null,
       duree_projet         Int                  Not null,
       CONSTRAINT PROJET_PK PRIMARY KEY (id_equipe, id_projet),
       CONSTRAINT PROJET_AK UNIQUE (code_projet),
       CONSTRAINT PROJET_CHEF_DE_PROJET_FK FOREIGN KEY (id_equipe, id_employe_chef)
          REFERENCES CHEF_DE_PROJET (id_equipe, id_employe),
       CONSTRAINT PROJET_EQUIPE_FK FOREIGN KEY (id_equipe)
          REFERENCES EQUIPE (id_equipe)
    ) ;
    
    CREATE TABLE PROJET_EMPLOYE 
    (
       id_equipe               Int                  Not null,
       id_projet               Int                  Not null,
       id_employe              Int                  Not null,
       date_debut_affectation  Date                 Not null,
       date_fin_affectation    Date                 Not null,
       CONSTRAINT PROJET_EMPLOYE_PK PRIMARY KEY (id_equipe, id_projet, id_employe),
       CONSTRAINT PROJET_EMPLOYE_EMPLOYE_FK FOREIGN KEY (id_equipe, id_employe)
          REFERENCES EMPLOYE (id_equipe, id_employe),
       CONSTRAINT PROJET_EMPLOYE_EQUIPE_FK FOREIGN KEY (id_equipe, id_projet)
          REFERENCES PROJET (id_equipe, id_projet)
    ) ;
    
    CREATE TABLE PROJET_COMPETENCE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_competence        Int                  Not null,
       CONSTRAINT PROJET_COMPETENCE_PK PRIMARY KEY (id_equipe, id_projet, id_competence),
       CONSTRAINT PROJET_COMPETENCE_PROJET_FK FOREIGN KEY (id_equipe, id_projet)
          REFERENCES PROJET (id_equipe, id_projet),
       CONSTRAINT PROJET_COMPETENCE_COMPETENCE_FK FOREIGN KEY (id_competence)
          REFERENCES COMPETENCE (id_competence)
    ) ;
    
    CREATE TABLE TACHE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       libelle_tache        Varchar(64)          Not null,
       CONSTRAINT TACHE_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT TACHE_PROJET_FK FOREIGN KEY (id_equipe, id_projet)
          REFERENCES PROJET (id_equipe, id_projet)
    ) ;
    
    CREATE TABLE FORMATION 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       date_debut           date                 Not null,
       date_fin             date                 Not null,
       lieu_formation       varchar(64)          Not null,
       CONSTRAINT FORMATION_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT FORMATION_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache)
    ) ;
    
    CREATE TABLE MISSION 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       date_debut           date                 Not null,
       date_fin             date                 Not null,
       lieu_mission         varchar(64)          Not null,
       CONSTRAINT MISSION_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT MISSION_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache)
    ) ;
    
    CREATE TABLE AUTRE_TACHE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       CONSTRAINT AUTRE_TACHE_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT AUTRE_TACHE_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache)
    ) ;
    CREATE TABLE COMPETENCE_EMPLOYE 
    (
       id_equipe            Int                  Not null,
       id_employe           Int                  Not null,
       id_competence        Int                  Not null,
       niveau               Int                  Not null,
       CONSTRAINT COMPETENCE_EMPLOYE_PK PRIMARY KEY (id_equipe, id_employe, id_competence),
       CONSTRAINT COMPETENCE_EMPLOYE_EMPLOYE_FK FOREIGN KEY (id_equipe, id_employe)
          REFERENCES EMPLOYE (id_equipe, id_employe),
       CONSTRAINT COMPETENCE_EMPLOYE_COMPETENCE_FK FOREIGN KEY (id_competence)
          REFERENCES COMPETENCE (id_competence)
    ) ;
    
    CREATE TABLE PROJET_COMPETENCE_EMPLOYE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_employe           Int                  Not null,
       id_competence        Int                  Not null,
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_PK PRIMARY KEY (id_equipe, id_projet, id_employe, id_competence),
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_PROJET_EMPLOYE_FK FOREIGN KEY (id_equipe, id_projet, id_employe)
          REFERENCES PROJET_EMPLOYE (id_equipe, id_projet, id_employe),
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_COMPETENCE_EMPLOYE_FK FOREIGN KEY (id_equipe, id_employe, id_competence)
          REFERENCES COMPETENCE_EMPLOYE (id_equipe, id_employe, id_competence),
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_PROJET_COMPETENCE_FK FOREIGN KEY (id_equipe, id_projet, id_competence)
          REFERENCES PROJET_COMPETENCE (id_equipe, id_projet, id_competence)
    ) ;
    
    CREATE TABLE PTE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       id_employe           Int                  Not null,
       id_competence        Int                  Not null,
       id_fonction          Int                  Not null,
       CONSTRAINT PTE_PK PRIMARY KEY (id_equipe, id_projet, id_tache, id_employe),
       CONSTRAINT PTE_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache),
       CONSTRAINT PTE_PROJET_COMPETENCE_EMPLOYE_FK02 FOREIGN KEY (id_equipe, id_projet, id_employe, id_competence)
          REFERENCES PROJET_COMPETENCE_EMPLOYE (id_equipe, id_projet, id_employe, id_competence),
       CONSTRAINT PTE_FONCTION_FK FOREIGN KEY (id_fonction)
           REFERENCES FONCTION (id_fonction)      
    ) ; 
    
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #23
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Pour résumer :


    Citation Envoyé par supras31 Voir le message
    ce que je n'ai pas compris dans votre diagramme est ce que ça serait automatique l'affectation d'un employé à un projet ?
    comment ça se fait l affectation
    Au vu du DC et du MLD, on sait à quelle équipe appartient un employé et on sait à quelle équipe est affecté un projet : on est donc capable d’affecter un employé à un projet.


    Citation Envoyé par supras31 Voir le message
    la logique me dit que on peut trouver des employés qui ont les compétences requises pour un projet mais ils ne seront pas affectés à ce projet car ils ne sont pas disponibles
    Comme la classe PROJET_EMPLOYE a été dotée de la période d’affectation d’un employé à un projet, on sait gérer les disponibilités d’un employé.


    Citation Envoyé par supras31 Voir le message
    ou bien même 2 projets peuvent nécessiter les mêmes compétences alors dans ce cas on peut visualiser l employé sur l’écran mais l 'affecter seulement à 1 projet et pas aux 2 projets .
    Voulez-vous dire qu’un employé ne peut pas participer simultanément à deux projets ? (Pour ma part, quand j’étais en société de services, il m’arrivait d’être sur 3 ou 4 projets en même temps !)


    Citation Envoyé par supras31 Voir le message
    le processus d'affectation doit géré c'est avoir une liste des employés et puis effectuer une requête sql pour affecter l employé au projet
    A partir du script de création des tables que je viens de vous fournir, il ne devrait pas y avoir de problème.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  4. #24
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 22
    Points : 10
    Points
    10
    Par défaut complexité de bout en bout
    D'accord merci pour toute cette aide , un dernière question je pense ,
    un gestionnaire des ressources humaines doit gérer les employés d l'entreprise c'est ajouter , modifier supprimés , il n' a aucune idée sur le mécanisme des équipes et il est pas responsable de gérer les équipes
    donc lors de la création d'un employé est ce que on doit sélectionner une équipe à laquelle appartient un employé ?
    de même une dernière requête s'il est possible qui permet d'avoir la liste des employés qui ne participent à aucun projet.
    ainsi je pense que la création d'un employé doit etre separée de la création d'une equipe
    donc la contradiction c'est qu'on doit avoir une liste des employés qui n'appartiennet à aucune equipe puisqu'ils n'appartiennet à aucune equipe donc ils ne sont pas affectés à des projets .
    je comprends pas enore tout ce mecanisme il est trop complexe , peut etre on doit laisser la notion d'employée separée de l'equipe et lors de l'affectation je pense qu 'on doit creer une equipe composée des employés qui ont les competences requises par un projet donné
    c'est à dire
    1-creer la liste des employés ,les compétences et les clients
    2-creer projet
    3-creer une équipe responsable du projet et lui ajouter les employés qui ont les compétences requises par le projet , on peut de meme ne pas selectionner un employé,
    4-gerer les taches de l'equipe

  5. #25
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir supras,


    Citation Envoyé par supras31 Voir le message
    un gestionnaire des ressources humaines doit gérer les employés d l'entreprise c'est ajouter , modifier supprimés , il n' a aucune idée sur le mécanisme des équipes et il est pas responsable de gérer les équipes.
    Si Monsieur Z, gestionnaire des ressources humaines s’occupe seulement du recrutement des employés, mais pas de leur affectation à une équipe c’est donc quelqu’un d’autre de l’entreprise, Monsieur X, qui s’en chargera : d’accord, on va modifier le DC et le MLD en conséquence.

    Pour cela, on supprime l’association actuelle entre EQUIPE et EMPLOYE, et on ajoute une classe EQUIPE_EMPLOYE (qui devrait en principe être une classe-association, mais ça ne change rien pour le MLD...), porteuse d’un attribut date_affectation_equipe, permettant de savoir à quelle date un employé a été affecté à une équipe par Monsieur X.

    Je profite de cette évolution pour compléter les diagrammes, en ajoutant la classe CLIENT.


    DC



    MLD



    D’où le script SQL de création des tables :

    CREATE TABLE COMPETENCE 
    (
       id_competence        Int                  Not null,
       libelle_competence   Varchar(64)          Not null,
       CONSTRAINT COMPETENCE_PK PRIMARY KEY (id_competence)
    ) ;
    
    CREATE TABLE FONCTION 
    (
       id_fonction          INT                  NOT NULL,
       libelle_fonction     VARCHAR(64)          NOT NULL,
       CONSTRAINT FONCTION_PK PRIMARY KEY (id_fonction)
    ) ;
    
    CREATE TABLE EMPLOYE 
    (
       id_employe           Int                  Not null,
       matricule            Varchar(5)           Not null,
       nom_employe          Varchar(64)          Not null,
       prenom_employe       Varchar(64)          Not null,
       date_embauche        Date                 Not null,
       grade                Varchar(3)           Not null,
       CONSTRAINT EMPLOYE_PK PRIMARY KEY (id_employe),
       CONSTRAINT EMPLOYE_AK UNIQUE (matricule)
    ) ;
    
    CREATE TABLE COMPETENCE_EMPLOYE 
    (
       id_employe           Int                  Not null,
       id_competence        Int                  Not null,
       niveau               Int                  Not null,
       CONSTRAINT COMPETENCE_EMPLOYE_PK PRIMARY KEY (id_employe, id_competence),
       CONSTRAINT COMPETENCE_EMPLOYE_EMPLOYE_FK FOREIGN KEY (id_employe)
          REFERENCES EMPLOYE (id_employe),
       CONSTRAINT COMPETENCE_EMPLOYE_COMPETENCE_FK FOREIGN KEY (id_competence)
          REFERENCES COMPETENCE (id_competence)
    ) ;
    
    CREATE TABLE EQUIPE 
    (
       id_equipe            Int                  Not null,
       nom_equipe           Varchar(64)          Not null,
       disponibilite        Varchar(64)          Not null,
       CONSTRAINT EQUIPE_PK PRIMARY KEY (id_equipe)
    ) ;
    
    CREATE TABLE EQUIPE_EMPLOYE 
    (
       id_equipe                Int                  Not null,
       id_employe               Int                  Not null,
       date_affectation_equipe  Date                 Not null,
       CONSTRAINT EQUIPE_EMPLOYE_PK PRIMARY KEY (id_equipe, id_employe),
       CONSTRAINT EQUIPE_EMPLOYE_EQUIPE_FK FOREIGN KEY (id_equipe)
          REFERENCES EQUIPE (id_equipe),
       CONSTRAINT EQUIPE_EMPLOYE_EMPLOYE_FK FOREIGN KEY (id_employe)
          REFERENCES EMPLOYE (id_employe)      
    ) ;
    
    CREATE TABLE CHEF_DE_PROJET 
    (
       id_equipe            Int                  Not null,
       id_employe           Int                  Not null,
       CONSTRAINT CHEF_DE_PROJET_PK PRIMARY KEY (id_equipe, id_employe),
       CONSTRAINT CHEF_DE_PROJET_EMPLOYE_FK FOREIGN KEY (id_equipe, id_employe)
          REFERENCES EQUIPE_EMPLOYE( id_equipe, id_employe)
    ) ;
    
    CREATE TABLE PROJET 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       code_projet          char(3)              Not Null,
       id_employe_chef      Int                  Not null,
       nom_projet           Varchar(64)          Not null,
       date_debut_projet    Date                 Not null,
       duree_projet         Int                  Not null,
       CONSTRAINT PROJET_PK PRIMARY KEY (id_equipe, id_projet),
       CONSTRAINT PROJET_AK UNIQUE (code_projet),
       CONSTRAINT PROJET_CHEF_DE_PROJET_FK FOREIGN KEY (id_equipe, id_employe_chef)
          REFERENCES CHEF_DE_PROJET (id_equipe, id_employe),
       CONSTRAINT PROJET_EQUIPE_FK FOREIGN KEY (id_equipe)
          REFERENCES EQUIPE (id_equipe)
    ) ;
    
    CREATE TABLE PROJET_EMPLOYE 
    (
       id_equipe               Int                  Not null,
       id_projet               Int                  Not null,
       id_employe              Int                  Not null,
       date_debut_affectation  Date                 Not null,
       date_fin_affectation    Date                 Not null,
       CONSTRAINT PROJET_EMPLOYE_PK PRIMARY KEY (id_equipe, id_projet, id_employe),
       CONSTRAINT PROJET_EMPLOYE_EQUIPE_EMPLOYE_FK FOREIGN KEY (id_equipe, id_employe)
          REFERENCES EQUIPE_EMPLOYE (id_equipe, id_employe),
       CONSTRAINT PROJET_EMPLOYE_PROJET_FK FOREIGN KEY (id_equipe, id_projet)
          REFERENCES PROJET (id_equipe, id_projet)
    ) ;
    
    CREATE TABLE PROJET_COMPETENCE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_competence        Int                  Not null,
       CONSTRAINT PROJET_COMPETENCE_PK PRIMARY KEY (id_equipe, id_projet, id_competence),
       CONSTRAINT PROJET_COMPETENCE_PROJET_FK FOREIGN KEY (id_equipe, id_projet)
          REFERENCES PROJET (id_equipe, id_projet),
       CONSTRAINT PROJET_COMPETENCE_COMPETENCE_FK FOREIGN KEY (id_competence)
          REFERENCES COMPETENCE (id_competence)
    ) ;
    
    CREATE TABLE PROJET_COMPETENCE_EMPLOYE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_employe           Int                  Not null,
       id_competence        Int                  Not null,
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_PK PRIMARY KEY (id_equipe, id_projet, id_employe, id_competence),
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_PROJET_EMPLOYE_FK FOREIGN KEY (id_equipe, id_projet, id_employe)
          REFERENCES PROJET_EMPLOYE (id_equipe, id_projet, id_employe),
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_COMPETENCE_EMPLOYE_FK FOREIGN KEY (id_employe, id_competence)
          REFERENCES COMPETENCE_EMPLOYE (id_employe, id_competence),
       CONSTRAINT PROJET_COMPETENCE_EMPLOYE_PROJET_COMPETENCE_FK FOREIGN KEY (id_equipe, id_projet, id_competence)
          REFERENCES PROJET_COMPETENCE (id_equipe, id_projet, id_competence)
    ) ;
    
    CREATE TABLE TACHE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       libelle_tache        Varchar(64)          Not null,
       CONSTRAINT TACHE_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT TACHE_PROJET_FK FOREIGN KEY (id_equipe, id_projet)
          REFERENCES PROJET (id_equipe, id_projet)
    ) ;
    
    CREATE TABLE FORMATION 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       date_debut           date                 Not null,
       date_fin             date                 Not null,
       lieu_formation       varchar(64)          Not null,
       CONSTRAINT FORMATION_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT FORMATION_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache)
    ) ;
    
    CREATE TABLE MISSION 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       date_debut           date                 Not null,
       date_fin             date                 Not null,
       lieu_mission         varchar(64)          Not null,
       CONSTRAINT MISSION_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT MISSION_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache)
    ) ;
    
    CREATE TABLE AUTRE_TACHE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       CONSTRAINT AUTRE_TACHE_PK PRIMARY KEY (id_equipe, id_projet, id_tache),
       CONSTRAINT AUTRE_TACHE_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache)
    ) ;
    
    CREATE TABLE PTE 
    (
       id_equipe            Int                  Not null,
       id_projet            Int                  Not null,
       id_tache             Int                  Not null,
       id_employe           Int                  Not null,
       id_competence        Int                  Not null,
       id_fonction          Int                  Not null,
       CONSTRAINT PTE_PK PRIMARY KEY (id_equipe, id_projet, id_tache, id_employe),
       CONSTRAINT PTE_TACHE_FK FOREIGN KEY (id_equipe, id_projet, id_tache)
          REFERENCES TACHE (id_equipe, id_projet, id_tache),
       CONSTRAINT PTE_PROJET_COMPETENCE_EMPLOYE_FK02 FOREIGN KEY (id_equipe, id_projet, id_employe, id_competence)
          REFERENCES PROJET_COMPETENCE_EMPLOYE (id_equipe, id_projet, id_employe, id_competence),
       CONSTRAINT PTE_FONCTION_FK FOREIGN KEY (id_fonction)
           REFERENCES FONCTION (id_fonction)      
    ) ;
    


    Citation Envoyé par supras31 Voir le message
    Lors de la création d'un employé est ce que on doit sélectionner une équipe à laquelle appartient un employé ?
    Vu les modifications apportées dans les diagrammes ça devient inutile. On pourra créer un employé sans avoir à faire référence à une équipe :

     
    INSERT INTO EMPLOYE (id_employe, matricule, nom_employe, prenom_employe, date_embauche, grade) 
        VALUES (1, 'a01', 'Naudin', Fernand, '2000-01-01', 'g01') ;
    
    Et si on laisse le SGBD gérer la numérotation automatique pour l’attribut id_employe :

     
    INSERT INTO EMPLOYE (matricule, nom_employe, prenom_employe, date_embauche, grade) 
        VALUES ('a01', 'Naudin', Fernand, '2000-01-01', 'g01') ;
     


    Citation Envoyé par supras31 Voir le message
    une dernière requête, s'il est possible qui permet d'avoir la liste des employés qui ne participent à aucun projet.
    Il est évidemment possible de savoir quels employés ne participent à aucun projet :

    SELECT matricule, nom_employe, prenom_employe
    FROM   EMPLOYE AS x
    WHERE NOT EXISTS (SELECT ''
                      FROM   PROJET_EMPLOYE AS y
                      WHERE  x.id_employe = y.id_employe) ;
    
    

    Bon courage !
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  6. #26
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup monsieur pour votre aider je vais faire un jeux d'essai maintenant . en cas de blocage j’espère trouver votre aide

Discussions similaires

  1. Trés urgent aide diagramme de classe PFE
    Par supras31 dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 29/03/2015, 14h09
  2. Réponses: 0
    Dernier message: 01/03/2014, 23h57
  3. Aide diagramme de classes
    Par Rosees dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 04/11/2013, 23h07
  4. Besion d'aide diagramme de classe gestion de Parc informatique
    Par edadjain dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 20/09/2012, 01h29
  5. aide diagramme de classe
    Par johnjjj dans le forum Diagrammes de Classes
    Réponses: 0
    Dernier message: 30/05/2011, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo