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

Modélisation Discussion :

Relation Simple entre 2 tables


Sujet :

Modélisation

  1. #1
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut Relation Simple entre 2 tables
    J'ai 2 entité une donnee et l'autre pays

    en gros je reçois plusieurs enregistrement et j'aimerai avoir une table unique pays qui répertorie tous mes pays sans doublon

    Table donnée

    ID_donnee INT PK
    donnée VARCHAR(45)
    pays VARCHAR(45)
    indicateur VARACHAR(45)

    Table pays

    ID_pays PK
    pays



    J'ai un soucis dans la table pays c'est sure....comment lier ces tables en SQL
    qui doit être PK qui doit être FK

  2. #2
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Il faut une clé UNIQUE ?

  3. #3
    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,

    Ton soucis est dans la table Donnee.
    La propriété pays de cette table doit être du même type que celle de la clé primaire de pays. Tu dois la déclarer également comme étant une clé étrangère (foreign key) faisant référence à l'id de la table pays.
    Change son nom tant que tu y es => fk_pays
    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 !

  4. #4
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Je pense avoir un souci de conception...
    Je veux pas avoir 300fois le meme pays ...
    je peux pas faire une clé étrangère sur une clé qui n'est pas primaire

  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 tidou95220 Voir le message
    Je pense avoir un souci de conception...
    Oui...


    Citation Envoyé par tidou95220 Voir le message
    Je veux pas avoir 300fois le meme pays ...
    300 fois le même pays dans quelle table ?


    Citation Envoyé par tidou95220 Voir le message
    je peux pas faire une clé étrangère sur une clé qui n'est pas primaire
    l'id de la table Pays est bien une clé primaire ?

    Tu peux m'expliquer pourquoi tu aura 300 fois la même valeur ?

    Remarque : je pense que ton sujet n'est pas dans le bon forum. Il faudrait le déplacer dans conception.
    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
    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
    Table donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ID_donnee INT PK
    libelle VARCHAR(45)
    fk_pays INT
    indicateur VARACHAR(45)
    
    -> add constraint fk_pays.... pour la clé secondaire

    Table pays

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ID_pays PK
    libelle VARCHAR(45)
    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 !

  7. #7
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    300x dans la table donnée dans le champs pays...
    vue que j'ai plusieurs enregistrement... je peux avoir 50fois la france 30fois le brésil... et moi en gros je veux faire une table qui sortirai
    France
    Brésil

    et rien d'autre pas

    France
    France
    France
    Bresil
    Bresil

  8. #8
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    Je comprend pas trop ton fk_pays INT dans ma table donnée....
    moi c'est pas un INT c'est un VARCHAR mon pays....
    Arf merci

  9. #9
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Bonjour,

    Tu dois lier ta clé étrangère fk_pays de ta table données à la clé primaire id_pays de ta table pays.

    De cette manière tu n'auras qu'un seul identifiant pour un pays dans ta table pays.
    Par contre tu auras automatiquement plusieurs fois la même clé étrangère dans ta table données car d'autres champs entres en compte (id_donnee, libelle et indicateur).

    Si ce n'est pas clair le plus simple est de nous poster un exemple de résultat attendu.
    ~ Lola ~

  10. #10
    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
    Bon je fais un dessin

    Avec la solution qu'on t'a proposé tu aura par exemple dans la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Table Donnee
    ---------------------------------------------
    | id_donnee | libelle | indicateur | fk_pays |
    ---------------------------------------------
    |      1        |    A   |   a          |     3       |
    ---------------------------------------------
    |      2        |     B  |    b          |    1       |
    ----------------------------------------------
    
    Table Pays
    -------------------------
    |      id_pays  |     libelle | 
    -------------------------
    |       1         |  France  | 
    -------------------------
    |       2        |   Espagne | 
     -------------------------
     |      3       |  Allemagne  | 
      -------------------------
    Donc pour la donnée 1, tu aura l'Allemagne et pour la donnée 2, tu aura la France.
    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 !

  11. #11
    Membre régulier Avatar de tidou95220
    Homme Profil pro
    BI junior
    Inscrit en
    Novembre 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : BI junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2008
    Messages : 263
    Points : 90
    Points
    90
    Par défaut
    une clé primaire peut etre de type varchar ? (pour ma table pays)

  12. #12
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Ta clé primaire ici c'est id_pays.
    Pourquoi veux-tu mettre ta clé primaire sur ton libelle ?
    ~ Lola ~

  13. #13
    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 Tidou95220, Slim et Lola06,

    Je me permets de m'immiscer, Slim et Lola06, désolé...

    Tidou95220, ton souhait est flou (pour le moins...). A partir de
    Citation Envoyé par Tidou95220
    Table donnée:
    ID_donnee INT PK
    donnée VARCHAR(45)
    pays VARCHAR(45)
    indicateur VARACHAR(45)
    qui contient plusieurs lignes pour un même pays, souhaites-tu obtenir une
    Citation Envoyé par Tidou95220
    Table pays
    ID_pays PK
    pays
    qui ne contiendrait qu'une seule ligne par pays (PK) ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

Discussions similaires

  1. [Doctrine] Les relations simple entre table, comment les gères t-on ?
    Par llaffont dans le forum ORM
    Réponses: 1
    Dernier message: 24/10/2011, 11h06
  2. [Modèle Relationnel] Relations bidirectionnelles entre 3 tables
    Par Tchupacabra dans le forum Schéma
    Réponses: 2
    Dernier message: 06/11/2008, 14h31
  3. [SQL] Relations complexes entre deux tables
    Par simonoche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2007, 00h23
  4. [novice] relation fk entre deux tables
    Par localhost dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/10/2005, 06h33
  5. relation double entre deux tables
    Par thibautche dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/05/2005, 11h31

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