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

Merise Discussion :

Conception d'un MCD pour la gestion des projets


Sujet :

Merise

  1. #21
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Un petit exercice...


    Supposons que vous souhaitiez conserver la trace des changements d’état des projets : la règle deviendrait donc la suivante :

    (R1) A une date donnée, un projet donné est dans un état et un seul.

    Auquel cas, la date d’état pouvant être multiple pour un projet, l’attribut correspondant doit être évacué de l’entité-type PROJET.

    Le MCD deviendrait alors le suivant :




    Où la flèche rouge représente la traduction de la règle d’unicité (R1). Cette flèche symbolise ce qu’en Merise on appelle une CIF (abréviation de « contrainte d’intégrité fonctionnelle »).

    Certains auteurs préfèrent la représentation graphique suivante (équivalente) :





    La représentation « canonique » étant la suivante, plus lourde, mais une fois encore équivalente :





    Quoi qu’il en soit, PowerAMC ne sait pas ce qu’est une CIF... En conséquence de quoi, au niveau SQL, il générera une table PROJET_ETAT dont la clé primaire sera le triplet {ProjetId, EtatDate, EtatId} : il faudra réduire manuellement cette clé à la paire {ProjetId, EtatDate} pour que la règle R1 soit respectée.

    Par défaut il y aura génération d’une table DATE dont on a strictement rien à faire et qui est plus une gêne qu’autre chose. On peut demander à PowerAMC de ne pas la générer :




    Résultat produit par PowerAMC lors du passage direct du MCD au « MPD » :




    Ce qu’il faut obtenir (évacuation de l’attribut EtatId de la clé primaire) :





    Pour évacuer l’attribut EtatId de la clé primaire : Sélectionner « Propriétés de la table PROJET_ETAT » et cliquer sur l’onglet « clés » :




    Clic droit sur Identifiant1 et sélection de « Propriétés » :





    Dans la fenêtre « Propriétés de la clé », sélectionner l’onglet « Colonnes » :




    On accède alors à la composition de la clé :



    Il n’y a plus qu’à supprimer la ligne 3, porteuse de EtatId, suite à quoi la clé sera réduite à la paire {ProjetId, EtatDate} :





    Fermez le ban.
    (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
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par fsmrel Voir le message

    Changement d’état :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE PROJET 
        SET EtatId = ...
          , EtatDate = ...
        WHERE ProjetId = ... ;
    oui c'est bien ça merci beaucoup, mais peut'on garder un historique du projet pour la date de chaque etat?

    par exemple état ={"début", "en cours", "terminé"} puisque on veut connaitre la date de début et de fin de chaque projet

  3. #23
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Bonsoir abderazaqtr,


    Citation Envoyé par abderazaqtr Voir le message
    Peut-on garder un historique du projet pour la date de chaque état?
    S’il s’agit seulement de la seule table PROJET, ce que j’ai présenté dans mon précédent message devrait convenir :

    MCD



    MLD



    Exemple :

    Table PROJET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ProjetId    ProjetNom
    --------
           1    Isis
         ...    ...
    Table ETAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EtatId    EtatLibelle
    ------    -----------
         1    proposé
         2    débuté
         3    terminé
       ...    ....
    Table PROJET_ETAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ProjetId    EtatDate      EtatId
    --------    --------
           1    01/02/2010         1
           1    14/07/2010         2
           1    24/11/2014         3
    Si un projet n’a droit qu’à un seul état, alors la paire {ProjetId, EtatId} doit faire l’objet d’une clé alternative pour la table PROJET_ETAT.
    (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 régulier
    Inscrit en
    Janvier 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 219
    Points : 76
    Points
    76
    Par défaut
    Bonjour
    pour moi, il faut créer une table planning dans lequel tu vas enregistrer les modification sur l'etat d'avancement de ton projet

Discussions similaires

  1. [AC-2010] MCD Pour la gestion des participants à une convention.
    Par seanp223 dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/05/2011, 05h20
  2. [MCD] Difficulté conception modèle pour la Gestion des Achats
    Par maddev dans le forum Schéma
    Réponses: 13
    Dernier message: 21/02/2009, 19h11
  3. Besoin d'aide pour MCD de la gestion des SAV
    Par balolo dans le forum Schéma
    Réponses: 6
    Dernier message: 07/12/2007, 17h06
  4. [MCD] Conception d'un MCD pour des étudiants d'une fac
    Par beegees dans le forum Schéma
    Réponses: 7
    Dernier message: 16/10/2006, 03h05

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