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

PHP & Base de données Discussion :

table de liaison & clef étrangere


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 37
    Par défaut table de liaison & clef étrangere
    Bonjour,

    je dois créer une base de donnée avec des clients et des fournisseur,
    je dois créer une table de liaison? comment?
    dois-je utiliser des clef etrangéres?

    Je trouve pas de tuto la dessus quelqu'un peut m'aider?



    Corentin

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    une table de liaison c'est conceptuel.
    dans ton cas ca sera juste un table qui associe un id de chacune des deux autres tables.

    concernant les clefs etrangères, ce n'est déjà possible qu'avec des bases Innodb, et ce n'est pas essentiel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 814
    Billets dans le blog
    14
    Par défaut
    Quelle liaison vas-tu faire entre les clients et les fournisseurs ?
    Le fait que ce sont des entreprises de types différents ?

    Sinon, contrairement à sabotage, je recommande fortement l'usage des clés étrangères si tu ne veux pas une base qui risque d'avoir des données pourries un jour ou l'autre.

    Voir à ce sujet l'article (un peu sec parfois) de SQLPro
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les arguments de cet article sont surtout vrais pour de grosses structures.
    Ce que je voulais surtout dire c'est qu'une application peut vivre sans contraintes de clefs ; concernant la sanité de la base, elle serait la même sans contraintes qu'avec des contraintes mal définies.
    Et pour Mysql, il y a un choix à faire entre Innodb et Myisam. Exiger des contraintes c'est mettre Myisam a la poubelle, ce qui serait peut etre un peu hatif.

    On peut de toute facon commencer sans contraintes de clef et les ajouter plus tard quand on est plus à l'aise.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 37
    Par défaut
    donc effectivement tout marche bien avec un simple table de liaison !

    une question en rab (peut etre aurais je du ouvrir un autre post)

    j'ai une table de liaison
    IDA IDB
    1 - 1
    1 - 2
    1 - 7

    je veux tester en php si une valeure est comprise dans IDB pour un IDA donné
    dois je faire un truc du genre

    $Valeur_A_tester=3;
    $i=0;

    $sql="Select `IDB `from table where `idA` = 1";
    while ($row=mysql_fetch_array(mysql_query($sql,$this->link), MYSQL_NUM));
    {$a[$i]=$row[]; $i++}

    if(in_array($Valeur_A_tester,$a) echo "c'est dedans";

    Ou y t'il plus elegant?

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 814
    Billets dans le blog
    14
    Par défaut
    Ne prenez pas la mauvaise habitude d'appeler vos objets de base de données par des mots du langage SQL (ici la table appelée 'table') !

    Pour votre question, il suffit d'ajouter la valeur à tester à la condition WHERE.
    Un COUNT(*) donnera directement le nombre de lignes répondant à la condition.
    Code PHP : 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
    20
    21
    22
    $valeur_de_A = 1;
    $valeur_de_B = 3;
     
    $requete = "
      SELECT COUNT(*)
      FROM laTable
      WHERE IDA = $valeur_de_A
        AND IDB = $valeur_de_B
    ";
     
    $reponse = mysql_query($requete);
     
    $nb_lignes = mysql_num_rows($reponse);
     
    if($nb_lignes > 0)
    {
      echo "Valeur IDB = $valeur_de_B trouvée !";
    }
    else
    {
      echo "Valeur IDB = $valeur_de_B absente !";
    }
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    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 !

Discussions similaires

  1. [Doctrine] Clefs primaires multi champs (table de liaison)
    Par froger4 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/10/2012, 15h28
  2. Table lié (liaison dynamique)
    Par willytito dans le forum Access
    Réponses: 2
    Dernier message: 19/03/2007, 09h20
  3. créer TRIGGER sur 1 table avec liaison sur 2 autre table
    Par shaka84 dans le forum Développement
    Réponses: 2
    Dernier message: 11/04/2006, 11h10
  4. Table de liaison "facultative"
    Par Asarnil dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/03/2006, 19h56
  5. jointure sur 2tables + 1 table de liaison
    Par gypa dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/09/2005, 00h43

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