Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/08/2011, 00h11   #1
Invité régulier
 
Inscription : septembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 13
Points : 8
Points : 8
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 !
thierry.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 16h46   #2
Invité régulier
 
Inscription : septembre 2010
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 13
Points : 8
Points : 8
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:

Citation:
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 !
thierry.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h02.


 
 
 
 
Partenaires

Hébergement Web