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

Schéma Discussion :

Décrire une clé étrangère comme clé primaire [MCD]


Sujet :

Schéma

  1. #1
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 4
    Points
    4
    Par défaut Décrire une clé étrangère comme clé primaire
    Bonjour,

    Je cherche à représenter dans un MCD une clé primaire qui est aussi une clé étrangère d'une autre table.

    J'ai la table :
    Site (code_site, nom, adresse)

    La table commande a une clé primaire composée (n°, date, code site expéditeur) :
    Commande (numéro, date, code_site_expéditeur, paramètres)

    Le site expéditeur est clé primaire de Commande et clé étrangère de la table Site.


    Normalement, quand je dessine mon MCD, les clés étrangères sont définies par les associations et n'apparaissent pas dans l'entité.

    Or, la clé primaire est définie dans l'entité (en soulignant).

    Est-ce que dans ce cas précis, le code_site_expéditeur doit apparaître dans l'entité où est-ce qu'il y a moyen de définir l'association comme clé primaire ?

    Merci de vos réponses.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 097
    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 097
    Points : 31 528
    Points
    31 528
    Billets dans le blog
    16
    Par défaut
    Bonjour Anne-Claire,


    Je m’étonne que différentes commandes d'un site donné puissent avoir le même numéro (conséquence de la présence de la date dans la clé). Pour le moment on va quand même faire avec.


    Citation Envoyé par anne-claire Voir le message
    Est-ce que dans ce cas précis, le code_site_expéditeur doit apparaître dans l'entité ?
    Comme disent les angloglottes : One fact, one place, autrement dit le concept de site ne doit figurer qu’une fois dans le diagramme conceptuel, c'est-à-dire soit sous forme d’entité-type, à savoir SITE, soit sous forme d’attribut de l’entité-type COMMANDE.
    Il va de soi que ce sera sous forme d’entité-type (sinon il y aurait viol de la deuxième forme normale). Pour faire apparaître le lien, il y a essentiellement deux solutions.

    La 1re solution consisterait à utiliser l’identification relative (Merise/2). Avec l’AGL Power AMC :





    Dérivation sous forme de diagramme logique :





    La 2e solution (en Merise/1) consisterait à considérer — sans état d’âme — la commande comme association entre les entités-types SITE, DATE (de commande) et NUMERO (de commande) :

    Diagramme conceptuel :




    Diagramme logique :


  3. #3
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci de ta réponse. J'utilise en effet PowerAMC. Et tu as bien décrit le MLD que je veux obtenir.

    Je viens juste de trouver ta réponse en cochant identifiant dans l'association (1,1).
    Mais, en fait j'utilise des relations plutôt que des associations car mon MCD est déjà hyper complexe.

    Je crois que je dois définir une relation dépendante.
    Voici ce que dit l'aide de PowerAMC :
    Dans une relation dépendante, une entité est partiellement identifiée par une autre.
    Chaque entité doit être dotée d'un identifiant.
    Cependant, dans certains cas, les attributs d'une entité ne suffisent pas à identifier une occurrence de cette entité.
    Pour ces entités, leur identifiant incorpore l'identifiant d'une autre entité avec laquelle elle a une relation dépendante
    Donc, je crois que j'arrive au même MLD en utilisant une relation dépendante.

    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 097
    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 097
    Points : 31 528
    Points
    31 528
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par anne-claire Voir le message
    Je crois que j'arrive au même MLD en utilisant une relation dépendante.
    C’est même une certitude ! Pour ceux qui parcourraient cette discussion et se poseraient des questions, je fournis le diagramme conceptuel correspondant (notation E/R selon Power AMC) :



    Maintenant, je répète que je m’étonne qu’un site ait des commandes qui le même jour puissent avoir le même numéro.

    =>

    Quelles sont les règles de gestion précises à ce sujet ?

  5. #5
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Maintenant, je répète que je m’étonne qu’un site ait des commandes qui le même jour puissent avoir le même numéro.
    J'ai un peu simplifié mon modèle et mes commandes arrivent de différents systèmes amont.

    Merci pour ta réponse. Je marque résolu.

    Anne-Claire

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Anne-Claire et Fsmrel,

    Je me permets de m'immiscer, Fsmrel...

    Anne-Claire, juste pour aller au bout du raisonnement, la remarque de Fsmrel est judicieuse et relève, peut-être, d'une erreur de détermination de la clé primaire (que tu peux d'ailleurs vérifier par une simple requête sur ta table réceptrice des commandes qui arrivent de tes différents systèmes en amont).
    Site(code_site, nom, adresse) ;
    Commande(#code_site_expéditeur, numéro, date, paramètres).
    semble suffisant.

    C'est vrai que "qui peut le plus, peut le moins" et que si [#code_site_expéditeur, numéro] est unique, alors [#code_site_expéditeur, numéro, date] est aussi unique. Mais, il n'est jamais très bon d'augmenter inutilement le nombre de champs de la clé primaire.

    Mais bon, nous ne connaissons le contexte dans son ensemble.

  7. #7
    Candidat au Club
    Femme Profil pro
    Consultant fonctionnel
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    En fait, je travaille sur les douanes et c'est très complexes. Je peux recevoir un même numéro pour une commande provenant du même système facturier passée sur 2 dates différentes : la date doit donc faire partie de la clé.
    Le système (j'avais mis site expéditeur) doit aussi faire partie de la clé car sur une même date, les 2 systèmes peuvent générer le même numéro.

    Le cas est très rare mais une erreur de déclaration en douane peut générer de lourdes amendes.

    En tout cas, merci de m'avoir consacré autant de temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déclarer une clé étrangère comme clé primaire
    Par awalter1 dans le forum Toad
    Réponses: 4
    Dernier message: 25/01/2013, 14h30
  2. Désignation d'une variable comme clé primaire
    Par Kruttie dans le forum SAS Base
    Réponses: 1
    Dernier message: 18/11/2009, 12h24
  3. Utilisé clé étrangère comme clé primaire
    Par Noodlex dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/11/2009, 16h00
  4. Réponses: 1
    Dernier message: 06/04/2007, 10h00
  5. [syntaxe] 2 clefs étrangères comme clef primaire
    Par novices dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/08/2006, 16h30

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