|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Consultant fonctionnel Inscription : septembre 2011 Messages : 11 ![]() |
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. |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
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:
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 :
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
|
30
|
|
|
#3 | |
|
Invité de passage
![]() Consultant fonctionnel Inscription : septembre 2011 Messages : 11 ![]() |
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 : Citation:
Cordialement. |
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Citation:
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 ?
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
|
20
|
|
|
#5 | |
|
Invité de passage
![]() Consultant fonctionnel Inscription : septembre 2011 Messages : 11 ![]() |
Citation:
Merci pour ta réponse. Je marque résolu. Anne-Claire |
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 184 ![]() |
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) ;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.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Consultant fonctionnel Inscription : septembre 2011 Messages : 11 ![]() |
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. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com