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

PowerAMC Discussion :

blocage sur le nom de l'attribut


Sujet :

PowerAMC

  1. #1
    Membre habitué
    blocage sur le nom de l'attribut
    Bonjour,

    Dans ma table CLIENTS j'ai une colonne CODE_CLIENT qui est la PK , dans ma 2e table COMMANDES, je souhaiterai mettre cette même colonne CODE_CLIENT en FK mais ca me bloque dans PowerAMC

    j'essaye de reproduire le même schéma que la photo ci dessous

    merci de votre aide

  2. #2
    Expert éminent sénior
    Bonjour,

    Je n'ai pas power AMC sous la main, mais d'après le titre de la fenêtre active : "Propriétés de l'entité - COMMANDES (COMMANDES)", vous êtes au niveau conceptuel, dans le MCD.
    En effet, les entités (ou plutôt les types d'entité) sont des objets manipulés dans le modèle conceptuel, alors que les tables sont les objets de niveau logique, le MLD.
    Or au niveau conceptuel, les clefs étrangères ne doivent pas être ajoutées, c'est la dérivation du MCD en MLD (ou directement en MPD) qui ajoutera automatiquement les FK dans les tables où elles sont requises

    Ainsi, les MCD et MLD suivants se correspondent (réalisés avec Looping), seul le MLD présente des redondances d'attributs à cause justement des FK (en bleu ci-dessous).
    Le MCD lui, ne doit jamais avoir d'attributs redondants



    De plus, l'usage est de nommer les types d'entité au singulier : COMMANDE plutôt que COMMANDES. La table résultante contiendra bien évidemment plusieurs occurrences de commandes

  3. #3
    Membre habitué
    MERCI beaucoup

    du coup c'est une fois que mon MLD/MPD est généré que ça rajoute automatiquement les FK (qui sont les PK des autres tables) via la liaison d'association qu'on a créé dans le MCD , est ce bien cela ?

    et est il possible d'ajouter une note sur la flèche de liaison au niveau du MPD pour une meilleure lisibilité,
    type "code_client=code_client" sur la fleche de liaison

    merci

  4. #4
    Expert éminent sénior
    Non : c'est le logiciel de modélisation qui le fait tout seul comme un grand.

  5. #5
    Membre habitué
    d'accord, et est il possible d'ajouter une note sur la flèche de liaison au niveau du MPD pour une meilleure lisibilité,
    type "code_client=code_client" sur la fleche de liaison

    merci

  6. #6
    Expert éminent sénior
    Revoyez l'exemple de MCD/MPD réduit de ma réponse n°2, vous constaterez que les colonnes FK ont par défaut le même nom que la PK dont elles héritent : CL_ident dans mon exemple.
    Du coup, il est inutile d'ajouter un commentaire pour cet usage.

    Par contre, il y a des cas où des précisions sont utiles sur les "pattes" des associations, le cas typique est celui de la relation réflexive parent/enfant :
    - une personne a pour parent zéro (parents inconnus) à plusieurs personnes
    - une personne a pour enfants zéro à plusieurs personnes

    L'association réflexive ayant des cardinalités maxi "n" de chaque coté, elle devient une table.
    Comme la PK d'une table associative est composée de l'ensemble des identifiants primaires des types d'entité participant à l'association, on aurait ici par défaut deux fois l'identifiant de la personne.
    Or, on ne peut avoir deux colonnes ayant le même nom dans une table. C'est pourquoi, par défaut, les logiciels de modélisation renomment en ce cas l'une des deux colonnes (souvent en ajoutant un suffixe genre _1)
    Pour plus de lisibilité, on peut ajouter un commentaire sur l'une, l'autre ou les deux "pattes" de l'association, commentaires qui seront utilisés pour renommer les identifiants de la table associative.
    Comme encore une fois je n'ai pas power AMC sous la main, je ne peux pas expliquer le mode opératoire précis, mais c'est forcément possible, probablement en double-cliquant sur la patte concernée.

    Voici un exemple de MCD et MLD généré avec Looping. On y voit clairement l'impact des commentaires des "pattes" du MCD sur le nom des identifiants générés dans le MLD :


    L'identifiant de la table associative est ici composé de l'identifiant de la PK (PE_ident) suffixé par le commentaire de chaque "patte"

###raw>template_hook.ano_emploi###