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 :

Foreign keys: de quelles tables partent les relations?


Sujet :

MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Foreign keys: de quelles tables partent les relations?
    Bonsoir à toutes et tous!

    Après avoir parcouru le net, je n'arrive toujours pas à trouver la réponse à ma question, à savoir: la gestion des relations doit-elle se faire d'enfant vers parent ou l'inverse ?

    Je m'explique...

    J'ai 3 tables:

    evaluations
    id_eval
    id_comportement

    comportement
    id_comportement
    id_initiative

    initiative
    id_initiative

    J'aimerais que:

    Quand je supprime une évaluation dans la table 'évaluations' (càd 'id_eval' ainsi que 'id_comportement'), l'id_initiative de la table 'initiative' et les id_comportement et id_initiative de la table 'comportement' soient également supprimés.

    Je pense devoir utiliser des 'ON DELETE cascade' mais le problème, c'est que je ne sais pas dans quel sens ça doit aller.

    Etant débutant, j'utilise phpMyAdmin pour réaliser ces opérations.

    Dois-je donc, me rendre dans la table 'initiative' -> Gestions des relations -> 'ON DELETE' cascade ou bien dans la table 'comportement' ou tout cela doit-il démarrer de la table parent 'evaluations' ??

    Vous comprendrez que je suis un peu perdu et demande votre indulgence pour cette question de noob ;-)

    Merci d'avance à celles/ceux qui me répondront !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    Je réponds à moi-même...

    Après quelques recherches, la réponse se trouve ici: http://www.developpez.net/forums/d49...rangere-table/

    J'en reproduit le passage le plus important:

    Sous phpmyadmin:

    1. tu crées tes tables en innodb en spécifiant tes clé primaires

    2. tu mets tous tes champs que tu veux passer en clés étrangères en index

    3. ensuite tu affiches la table (parente) et là tu dois voir "gestion des relations"

    4. c'est la que tu spécifieras vers où sont reliés tes index

    NB:
    Si ON DELETE CASCADE est spécifiée, et qu'une ligne de la table parente est effacée, alors InnoDB va automatiquement effacer toute les lignes qui sont dans la table fille et dont les valeurs de clé étrangère sont celles référencées dans la ligne parente.
    Merci rétro-activement à boo64 !

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

Discussions similaires

  1. FOREIGN KEY vers deux tables en meme temps
    Par lichman dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 27/11/2007, 03h11
  2. importer des tables avec les relations
    Par guigui5931 dans le forum Access
    Réponses: 5
    Dernier message: 23/06/2006, 12h14
  3. foreign key d'une table 1-1<-->1-1 ?!
    Par mamiberkof dans le forum Langage SQL
    Réponses: 12
    Dernier message: 30/05/2006, 00h15
  4. Access m'ajoute une table ds les relations ?!
    Par Fredd_b dans le forum Access
    Réponses: 6
    Dernier message: 06/01/2006, 17h39
  5. [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Par cauldron dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2004, 17h16

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