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

Langage SQL Discussion :

[MySQL] Utilisation des Foreign Key


Sujet :

Langage SQL

  1. #1
    Membre éprouvé
    Avatar de Regnak
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut [MySQL] Utilisation des Foreign Key
    Depuis sa version 5( heu je crois), MySQL permet l'utilisation des clées étrangères, notamment avec les tables MyIsam. On m'a dit qu'utiliser celles ci dans le but de faire des INNER JOIN était dangereux pour la stabilité de la table, que pour eéaliser une jointure avec MySQL, il fallait mieux en rester aux WHERE avec les clés primaires.

    est ce vrai ??
    Peut on prendre ce risque dans une application qui risque d'avoir beaucoup d'utilisateurs (codée avec PHP) ?

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    L'utilisation des clés étrangères est certainement beaucoup plus ancienne que la version 5

    Pour les nouveautés de la version 5, voir : Les nouveautés de MySQL 5.0

    Ensuite, tu parles de jointures : bien entendu, il est préférable de réaliser tes jointures via un mot-clé normalisé comme INNER JOIN plutôt que dans le WHERE : cf cet article : Les jointures, ou comment interroger plusieurs tables

    On m'a dit qu'utiliser celles ci dans le but de faire des INNER JOIN était dangereux pour la stabilité de la table, que pour eéaliser une jointure avec MySQL, il fallait mieux en rester aux WHERE avec les clés primaires.
    ... Heu, c'est un beau ramassis de bêtises que tu nous sors là !

    Tu mélanges des notions, les clés étrangères sont faites pour préserver l'intégrité de tes données, et les requêtes pour interroger tes données. Il est évidement préférable de faire des jointures sur des champs référencés via des clés étrangères pour la cohérence de ta requête.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre éprouvé
    Avatar de Regnak
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut
    Donc on est d'accord, c'est n'importe quoi ??
    En aucun cas ma table ne risque d'être plus altérée ?

  4. #4
    Membre chevronné
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Par défaut
    Citation Envoyé par Regnak
    Donc on est d'accord, c'est n'importe quoi ??
    En aucun cas ma table ne risque d'être plus altérée ?
    - C'est n'importe quoi
    - En aucun cas non ! Et c'est même préférable de le faire, pour pas dire obligé
    La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
    -----------------------------------------------------------
    Retrouvez mes articles informatique sur mon Site Developpez.
    Le reste, sur le Site perso !


  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Citation Envoyé par Regnak
    On m'a dit qu'utiliser celles ci dans le but de faire des INNER JOIN était dangereux pour la stabilité de la table, que pour eéaliser une jointure avec MySQL, il fallait mieux en rester aux WHERE avec les clés primaires.
    est ce vrai ??
    Ce qui serait intéressant, c'est de savoir où tu avais eu ce type d'informations...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre éprouvé
    Avatar de Regnak
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut
    Ce osnt certains de mes amis qui en paralaient
    Comme ils n'avaient pas trop l'air d'être sur d'eux sur ce coup, et que je ne trouvais pas de réponse sur internet, j'ai décidé de poser la question...
    Et j'ai bien fait !

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

Discussions similaires

  1. Liste des foreign key des tables d'une base de données
    Par lalyly dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/05/2006, 11h25
  2. Liste des foreigns key non indexés
    Par soazig dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/05/2006, 17h50
  3. utilisation des angel keys
    Par zidenne dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 13/01/2006, 14h11
  4. [mysql]table avec foreign key
    Par samjung dans le forum Langage SQL
    Réponses: 24
    Dernier message: 24/11/2005, 14h42
  5. [MYSQL] utilisation des TZ sous delphi possible?
    Par douill dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/03/2005, 17h19

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