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

PowerAMC Discussion :

comment définir une colonne en PK et FK en meme temps


Sujet :

PowerAMC

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 352
    Points : 182
    Points
    182
    Par défaut comment définir une colonne en PK et FK en meme temps
    Bonjour,

    dans mon entité "Details_commandes" je cherche à définir "no_commande" et "ref_produit" en tant que clé primaire et étrangère comme l'image ci-dessous nommé objectif, mais je ne sais pas comment faire et dans mon MPD il m'affiche REF_PRODUIT pk et fk mais dans le symbole association et non pas dans mon tableau entité

    merci de votre aide

    Nom : objectif.JPG
Affichages : 422
Taille : 419,7 KoNom : MPD.png
Affichages : 433
Taille : 277,7 KoNom : mcd.jpg
Affichages : 426
Taille : 118,2 Ko

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Il y a deux erreurs dans le MCD qui expliquent vos misères :

    • une commande doit avoir au moins une ligne de commande, sinon c'est une coquille vide (une commande sans produit)
    • une ligne de commande qui concerne plusieurs produits ne convient pas non plus, une ligne de commande c'est un et un seul produit.


    Le modèle conceptuel devrait donc être
    [COMMANDE] 1,n --- posseder --- 1,1(R) [LIGNE_COMMANDE] 1,1 --- concerner --- 0,n[PRODUIT]

    Avec le (R) qui matérialise l'identification de la ligne de commande relativement à la commande.
    Dans power AMC, la symbolique utilisée est des parenthèses autour des cardinalités (1,1).

    Quand le MCD est correct, la génération des FK dans le MLD et le MPD est automatique, il n'est pas utile de s'en préoccuper

    Profitez de l'occasion pour remplacer le type REEL/FLOAT par du DECIMAL, FLOAT est imprécis pour sa partie fractionnaire et donc inadapté pour des montants.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 352
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    merci de votre retour

    Vous changez donc [details_commandes] en [ligne_commande], pourquoi ? car là je comprends qu'une ligne de commande c'est un seul produit mais le details_commandes peut regrouper une liste de produits commandée ? non ?

    Le (R) permet de dire que chaque ligne de commande est lié à une commande, est-ce bien cela?
    mais je n'arrive pas à distinguer avec les autres liaisons car dans la liaison [commandes] et [clients] on pourrait aussi dire la même chose, chaque commande est forcément liée à un client.
    J'ai un peu du mal à comprendre comment faut l'interpréter ?

    mais en tout cas j'arrive bien à avoir mon MPD cible au bout du compte

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par awa123 Voir le message
    Vous changez donc [details_commandes] en [ligne_commande], pourquoi ? car là je comprends qu'une ligne de commande c'est un seul produit mais le details_commandes peut regrouper une liste de produits commandée ? non ?
    J'ai utilisé "ligne de commande" car c'est le terme le plus souvent employé.
    Mais peu importe le terme, le plus important est son sens. Or une commande c'est un ensemble de conditions commerciales entre un client et un fournisseurs, conditions applicables à chacun des articles de cette commande. S'il y a une raison particulière pour faire des sous-groupes de produits de la commande, pourquoi pas, mais en ce cas il faut en détailler la raison en rédigeant les règles de gestion correspondantes. Et quoi qu'il arrive, il faudra de toute façon modéliser une entité-type "ligne de commande" ou peu importe son nom pour faire le lien 1,1 avec l'article. En effet, la quantité commandée, le prix et d'autres attributs sont bien différents pour chacun des articles de la commande.


    Citation Envoyé par awa123 Voir le message
    Le (R) permet de dire que chaque ligne de commande est lié à une commande, est-ce bien cela?
    Plus que ça : la ligne de commande est dite "entité-type faible" en effet, elle ne saurait exister sans la commande.
    Dans cette situation, on modélise une identification relative dans le MCD.
    La conséquence dans le MLD est que la PK de la table issue de cette entité-type sera composée en majeur de l'identifiant de la commande et en mineur du n° de ligne
    Soit les tables (PK soulignées, FK suffixées #)
    CO_commande(CO_ident, CO_date, [...], CL_ident#) avec CL_ident identifiant le client (FK)
    LC_LIGNE_COMMANDE(CO_ident#, LC_ident, LC_quantite, LC_prix, [...], AR_ident#) avec AR_ident identifiant l'article (FK)


    Citation Envoyé par awa123 Voir le message
    mais je n'arrive pas à distinguer avec les autres liaisons car dans la liaison [commandes] et [clients] on pourrait aussi dire la même chose, chaque commande est forcément liée à un client.
    On pourrait faire de même avec la commande vis à vis du client (sans client, pas de commande)
    Cela dit, l'identification relative a des impacts sur l'organisation physique des données si on utilise la PK comme clef cluster. Là, on rentre dans des considérations techniques un peu pointues qui permettent d'avoir les lignes de commande d'une même commande rangées dans un espace disque contigü. Ce rangement séquentiel n'est pas obligatoirement aussi pertinent pour les commandes d'un client.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 352
    Points : 182
    Points
    182
    Par défaut
    merci

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

Discussions similaires

  1. (Tableaux) Comment définir une colonne ?
    Par wyzer dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/05/2011, 18h46
  2. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  3. Réponses: 8
    Dernier message: 20/12/2004, 15h14

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