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 :

[MEA]Comment représenter 1 clef primaire composée


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 52
    Points : 28
    Points
    28
    Par défaut [MEA]Comment représenter 1 clef primaire composée
    Bonjour,
    J'ai un souci de pur débutant en modélisation : Comment modéliser une relation entre une table client (PK NUM-EDITEUR + NUM-CLIENT) et une table adresse (PK NUM-EDITEUR + NUM-CLIENT + TYPE ADRESSE) ?

    En sql, je fais une jointure NUM-EDITEUR + NUM-CLIENT, qui me ramène bien tous mes clients avec leurs adresses, mais je n'arrive pas à mettre ca sur le papier.
    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Salut !

    d'abord,
    Citation Envoyé par marman
    client (PK NUM-EDITEUR + NUM-CLIENT) et une table adresse (PK NUM-EDITEUR + NUM-CLIENT + TYPE ADRESSE)
    m'étonnent.

    Comment as-tu modélisé ca ?

    La clé primaire de la table client ne doit pas être composée de deux éléments.
    De meme pour la table Adresse (c'est que je comprends pas trop le "NUM-EDITEUR + NUM-CLIENT). Pourrais-tu en dire plus ?
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par slim
    ...La clé primaire de la table client ne doit pas être composée de deux éléments.
    Ah bon ! et pourquoi pas ?

    De meme pour la table Adresse (c'est que je comprends pas trop le "NUM-EDITEUR + NUM-CLIENT). Pourrais-tu en dire plus ?
    On peut la considérer comme comme une table fille de la table Client et donc on y retrouve sa clé primaire ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 52
    Points : 28
    Points
    28
    Par défaut
    Désolé, j'ai pas pu me connecter hier.

    La clef primaire de ma table client est effectivement composée d'un code éditeur et d'un numéro de client, tout simplement car j'heberge des clients de plusieurs éditeurs.

    La table adresse comporte la ou les adresses des clients, d'où la clef code éditeur + num client + type adresse

    Par ailleurs, il s'agit d'une base dédiée au décisionnelle, donc elle est pas mal dénormalisée.

  5. #5
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Citation Envoyé par Luc Orient
    Ah bon ! et pourquoi pas ?

    On peut la considérer comme comme une table fille de la table Client et donc on y retrouve sa clé primaire ...
    La table Editeur n'est pas la table fille de CLient ? ca m'etonnerait que ce soit le cas. Si elle heritent toutes les deux d'une table Personne, là je suis d'accord.

    De plus, la table Adresse me choque un peu. Dans la table client, on met generalement un attribut adresse. De meme pour la table Editeur.

    Citation Envoyé par marman
    La clef primaire de ma table client est effectivement composée d'un code éditeur et d'un numéro de client, tout simplement car j'heberge des clients de plusieurs éditeurs.
    Pourrais-tu poposer un MCD de ce que tu dis ?

    Citation Envoyé par marman
    La table adresse comporte la ou les adresses des clients, d'où la clef code éditeur + num client + type adresse
    Là, tu dois avoir un problème de dépendances fonctionnelles... à mon avis .
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 52
    Points : 28
    Points
    28
    Par défaut
    Bonjour Slim,

    Comme je l'ai indiqué, la solution que je mets en place est dédiée au décisionnel, donc je n'ai pas les mêmes impératifs de modélisation que pour une base transactionnelle.

    Dans une table client, j'ai tous les clients de plusieurs éditeurs, d'ù la clef composite dans la table client.

    Il n'y a pas l'attribut adresse dans cette table car un client peut avoir plusieurs adresses.

    Ma question n'est pas de remettre en cause cette logique mais de savoir comment écrire cette relation entre ces 2 tables dans un mcd.

    Merci d'avance !

    PS: En gros, la question est comment définir une relation entre clefs composites dans un mcd ?

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

    Si un client fait mention d'un seul éditeur

    Si une adresse fait mention d'un seul client

    Alors on peut utiliser l'identification relative (utilisation d'un séquenceur repartant à 1 à chaque changement de parent). A tout le moins s'en inspirer...

    PJ :

    MCD Merise
    MCD Entité/relation
    MPD (notation entité/relation)
    Images attachées Images attachées    
    (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.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 52
    Points : 28
    Points
    28
    Par défaut
    Merci fsmrel, je vais regarder ca.

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

Discussions similaires

  1. comment modifier mes clefs primaires
    Par turican2 dans le forum Débuter
    Réponses: 5
    Dernier message: 18/10/2008, 09h11
  2. comment récupérer la clef primaire
    Par aedius dans le forum PhpMyObject
    Réponses: 2
    Dernier message: 16/01/2008, 23h30
  3. [Hibernate] Clef primaire composée
    Par mehdi_31 dans le forum Hibernate
    Réponses: 1
    Dernier message: 26/06/2006, 16h35
  4. Clef primaire composée
    Par 3xodius dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 15/06/2006, 11h44
  5. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06

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