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

MVC PHP Discussion :

clé étrangère dans une table [ZF 1.0]


Sujet :

MVC PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Points : 11
    Points
    11
    Par défaut clé étrangère dans une table
    Salut

    j'ai besoin de votre aide au niveau de ce que je les cite maintenant (je suis débutant)
    j'ai deux table : boite et instrument
    je veux faire une liaison entre les deux bien sur à travers une clé étrangère id_boite de la table boite dans la table instrument pour l'utiliser après dans le jointure
    s'il vous plait comment on peut le faire vraiment je suis bloqué .. j'ai vu beaucoup d'exemple dans l'internet mais j'ai rien compris
    merci d'avance

  2. #2
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    supposons une table "boites" contenant 2 colonnes
    "id_boit" et "nomdeboite"
    une table "instruments" contenant aussi 2 colonnes
    "id_inst" et "nominstrument"

    "id_boit" et "id_inst" sont les clefs PRIMAIRE, donc UNIQUE, il ne peut pas y avoir deux boites,n'y deux instruments avec le même numéro
    on aura par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    "boites"
    "id_boit" "nomdeboite"
    1            Boite numero 1
    2            Boite numero 2
    ...
    "instruments"
    "id_inst" "nominstrument"
    1           Instrument n°1
    2           Instrument n°2
    3           Instrument n°3
    4           Instrument n°4
    ...
    pour "Lier les instruments à des boites tu crée une table de liaison "link_inst_boit" avec deux colonnes on l'on inscrit les id des intruments et les id des boites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    "link_id_inst" "link_id_boit" (normalement on réutilise les mêmes nom "id_inst" et "id_boit" mais pour l'explication j'ai ajouté "link_")
    1                  1                 (l'instrument 1 est dans la boite 1)
    2                  1                 (l'instrument 2 est dans la boite 1)
    3                  2                 (l'instrument 3 est dans la boite 2)
    4                  2                 (l'instrument 4 est dans la boite 2)
    1                  2                 (l'instrument 1 est aussi dans la boite 2)
    ...
    donc pour trouver les noms des instruments qui sont dans la boite n°2 tu fait un select avec une jointure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT 
    *
    FROM link_inst_boit                       -- (on cherche dans la table link_inst_boit)
    join instruments on link_id_inst = id_inst -- (on ajoute les informations de la table instrument avec une correspondance entre link_id_inst et id_inst) 
    where link_id_boit = 2  -- (on ne prend que les liens concernant la boite 2)
    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    link_id_inst	link_id_boit	id_inst	nominstrument
    3	        2	        3	        instr3
    4	        2	        4	        instr4
    1	        2	        1	        instr1


    oui mais les clefs étrangères dans tout cela !?

    a ce stade rien ne t'empêche d'introduire dans "link_inst_boit" un lien entre un instrument n° 1456(qui n'existe pas) et une boite n°17562(qui n'est même pas encore fabriquée)

    les clefs étrangéres sont là pour éviter ce genre d'erreur

    si tu crée une clef etrangére qui lie "link_id_inst" de la table "link_inst_boit" a la colonne "id_inst" de la table "instruments"
    et la valeur que tu introduit dans "link_id_inst" doit se trouver dans les valeurs de la colonne "id_inst" de la table "instruments"
    tu fait la même chose pour "link_id_boit" et la colonne "id_boit" de la table "boites"

    et il devient impossible d'inserer un numero d'intrument ou un numero de boite qui n'existent pas dans leur table respective, dans la table des liaisons
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2014
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    merci bien je comprends maintenant

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    Content de t'avoir aidé, n'oublie pas de marquer le sujet comme "résolu"
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

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

Discussions similaires

  1. [Modèle Relationnel] Clé étrangère dans une table
    Par flavia dans le forum Schéma
    Réponses: 3
    Dernier message: 05/08/2008, 12h02
  2. comment ajouter une clé étrangère dans une table
    Par une_tite_question dans le forum Débuter
    Réponses: 6
    Dernier message: 09/05/2008, 07h14
  3. Clé étrangéres dans une table Oracle
    Par Flipmode dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 18/05/2007, 21h48
  4. Definir une clé étrangère dans une table existante?
    Par gui38 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/12/2006, 13h54
  5. Réponses: 5
    Dernier message: 28/04/2006, 11h55

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