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 :

MyISAM et Clé étrangère


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut MyISAM et Clé étrangère
    Bonjour,

    j'ai lu quelque part sur le net (je ne sais plus où..) que Mysql gérait les
    clé étrangères en type Myisam à partir d'une certaine version...

    Est-ce vrai ?

    Si, ce n'est pas vrai, puis-je tout de même créer mes tables avec des clées étrangères de type Myisam (pas pour le delete en cascade) mais uniquement pour faciliter les requêtes SQL ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    En fait, à ma connaissance le moteur MySIAM de MyQL ne gère pas les contraintes de clés étrangères (FOREIGN KEY), par contre il semble qu'il en accepte la syntaxe, mais qu'il n'exerce pas les contrôles d'intégrités qu'elles décrivent.
    Ceci dit, le concept de clé érangère est quasiment incontournable lorsque l'on passe du MCD au MPD (via le MLD, je sais, je sais), après que le SGBD sache ou non gérer les contraintes afférentes, c'est une autre histoire. Pour cela, avec MySQL, tu as les tables InnoDB.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Je ne vais utiliser les tables innodb, je vais rester en Myisam pour des raison de temps de réponses.

    Par conte j'aimerai juste savoir s'il est utile de créer des tables avec des Foreign Keys alors que le delete en cascade ne fonctionne pas...


    Y a-t'il tout de même une utilité pour des futurs requêtes SQL un peu complexes ?

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Par conte j'aimerai juste savoir s'il est utile de créer des tables avec des Foreign Keys alors que le delete en cascade ne fonctionne pas...


    Y a-t'il tout de même une utilité pour des futurs requêtes SQL un peu complexes ?
    Déclarer les contraintes FOREIGN KEY en MyISAM ne sert ne sert à rien (intégrité référentielle non gérée) mais ne pénalise pas non plus. La présence des valeurs des clés mères dans les lignes des tables enfants sera indispensable pour faire les jointures, mais leur absence (lignes orphelines) créera juste des aberrations dans les résultats.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    Si j'ai bien compris, je peux mettre des clés étrangères mais sans les déclarer en tant que clé étrangère, ça me servira uniquement pour les requêtes de jointures.

  6. #6
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Si j'ai bien compris, je peux mettre des clés étrangères mais sans les déclarer en tant que clé étrangère, ça me servira uniquement pour les requêtes de jointures.
    Alors tu n'as pas bien compris.

    Tu peux les déclarer en tant que foreign key en MyISAM, mais MySQL s'en contre-tape.
    Par contre l'absence de ces colonnes dans les tables (et/ou des valeurs des clés mères dans la colonne) ne permettra pas de faire des jointures fiables.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

Discussions similaires

  1. Pas de clé étrangère avec Myisam?
    Par Annsen dans le forum Débuter
    Réponses: 3
    Dernier message: 11/04/2011, 17h18
  2. MyIsam, clés étrangères et index
    Par Squallynou dans le forum Administration
    Réponses: 5
    Dernier message: 15/07/2009, 11h39
  3. [clé primaire et étrangère]
    Par viny dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/08/2003, 18h23
  4. clé primaire composée de 2 clés étrangères
    Par Tigresse dans le forum Installation
    Réponses: 5
    Dernier message: 28/07/2003, 14h38
  5. [Script]prob de clés étrangères
    Par Seb7 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 08/07/2003, 17h37

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