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

 MySQL Discussion :

Clef primaire et clef étrangère petit soucis


Sujet :

MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut Clef primaire et clef étrangère petit soucis
    Bonjour,

    Je vous expose mon petit soucis. J'ai 2 tables :
    La première table est joueur avec 4 champs
    Le IdentJ est la clef primaire (auto-incrément)


    Pour le moment ça va, c'est ici que ça se complique pour moi...
    J'ai une second table nommé club.
    Le premier champ s'intitule CodeC ce champ doit être en alphanumérique donc je dois mettre un varchar ? Et pas de clef primaire je suppose ?


    Pour le dernier champ j'ai une clef étrangère qui est IdentJ, mais je sais pas trop comment la relier ?? Je dois mettre quoi dans le nom de l'index? Je pensais que c'était une pk qui fallait mettre, mais là il y en a pas....


    Je vous remercie pour vos explications.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    La première table est joueur avec 4 champs
    Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.

    En dehors de ça, votre table semble correctement construite.

    J'ai une second table nommé club.
    Le premier champ s'intitule CodeC ce champ doit être en alphanumérique donc je dois mettre un varchar ?
    Si le code est de taille unique, utiliser plutôt CHAR. Par exemple, pour un code sur 5 caractères, utiliser le type CHAR(5).

    Et pas de clef primaire je suppose ?
    Ben si !
    Et de préférence une clé primaire auto-incrémentée.
    Votre colonne CodeC, si elle contient un code unique pour chaque club, sera munie d'un index de type unique.

    Pour le dernier champ j'ai une clef étrangère qui est IdentJ
    Étonnant !
    N'y a t-il donc qu'un seul joueur par club ?
    Je pense que c'est plutôt le contraire et que la clé étrangère devrait être dans la table des joueurs et référencer le club auquel il appartient.

    La colonne portant la contrainte de clé étrangère doit être indexée. Et la contrainte elle même est accessible dans l'onglet "Structure" de la table, via le bouton "Vue relationnelle".
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Si le code est de taille unique, utiliser plutôt CHAR. Par exemple, pour un code sur 5 caractères, utiliser le type CHAR(5).
    Bonjour CinePhil,

    Merci pour toutes ces explications.
    Dans la table Club, lorsque je sélectionne le CHAR est que je lui mets 5 caractères ça ne veut pas fonctionner... Je comprends pas pourquoi ?


  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    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 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Je vois que vous avez coché l'auto-incrément, ce qui est incohérent avec une colonne de type char
    Supprimez aussi la PK sur cette colonne, et, comme l'a judicieusement suggéré Cinéphil, ajoutez une colonne technique de type integer en auto-incrément qui vous servira de PK

  5. #5
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Hello,

    Merci pour votre aide j'y suis enfin arrivé !

    Belle journée à vous

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

Discussions similaires

  1. [AC-2003] Export fichier XML sans clefs primaires et clefs étrangères
    Par Alicedoesnotcare dans le forum Access
    Réponses: 0
    Dernier message: 13/03/2014, 15h02
  2. Clef primaire généré mais j’ai un souci de lock
    Par zoltix dans le forum Développement
    Réponses: 8
    Dernier message: 02/05/2012, 14h29
  3. clefs primaires/étrangères sous AS400
    Par kirua2150 dans le forum DB2
    Réponses: 5
    Dernier message: 04/09/2006, 15h12
  4. [syntaxe] 2 clefs étrangères comme clef primaire
    Par novices dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/08/2006, 16h30
  5. clefs primaires/étrangères sous AS400
    Par kirua2150 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 15/07/2006, 21h22

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