Je voudrai savoir si c'est vraiment important de definire lors de la création de la table des clés étrangére? Car j'ai créer mes tables sans spécifier les clés étrangères, et dans mes traitement, je fait comme si c'etais des clé étrangère, esque c'est corrécte?
Oui si après dans ton code tu explique que ca marche comme une clé étrangère ça sera pareil de plus sous mysql tu peu pas toujours mettre que c'est une clé étrangère donc c'est mieux je trouve
Je sais pas si c'est ce genre de reponse que tu voulais mais j'éspère ca repond a ta question
oui genre dans la création de la table j'ai pas fait foreign key pour la clé étrangére, mais dans les requete de traitement je concidére ce champs comme etant une clé étrangére, grace a elle que je fait les liaisons, tu vois? donc c'est ça ce que je veux savoir, si ça ne pose pas de probléme?
Tu ne mets une clé étrangère que si dans ton MCD tu as une relation entre deux table. Sous MySQL, il faut utiliser le moteur InnoDB pour utiliser les clé étrangères correctement.
Non du tout si tu fais tes liaison a chaque fois c'est bon ;). Les champs ne doivent pas avoir forcément le meme nom mais doivent etre de même type par contre par exemple si un de tes champs est en VARCHAR(11) l'autre aussi c'est préférable
Parce que si tu envoi du texte dans un champs en INT ca ne marcheras pas
oui exactement MrClash, c'est ce que j'ai fait, mais bon juste une dernière chose,si je suis obligé de spécifier mes clé, mes requêtes de traitement (que ça soit l'ajout d'un enregistrement ou la suppression), ce n'est pas la pêne de les modifies?
:d, bon ce que je voudrai savoir, si, on modifiant ma table,c'est à dire, je crée les clés étrangères, les requetes que j'utilise pour l'ajout d'un élément ou la suppression d'un élément ne seront pas affecté par ce changement dans la table?
Le fait d'utiliser les clés étrangères est une protection de plus
Certes, on pourrai s'en passer mais dans 6 mois, te souviendra tu que la table A a une relation avec la table B ? Imagine que tu oublies (si si c'est humain), tu va insérer des lignes qui n'auront plus de sens.
Pour ta dernière question, le fait d'ajouter les clés ne devraient pas changer ton code si celui est bien fait(si tu as fais les insertions/suppression dans le bon sens ...) sinon tu va vite t'en rendre compte
Bah non mais si ton champs fait référence a une autre table qu'il soit clé étrangère ou non si il récupère les informations dans une autre table lors de ta suppression ou mise a jour de ta table tu ne modifieras pas les valeurs d'origine
Je suis d'accord avec angelo mais parfois une clé étrangère n'est pas faisable sous mysql ou alors n'est pas vraiment nécessaire surtout si tu programme en objet un getteur suffit
d'accord, je vois, dans la suppression d'un élément sachant que cette élément est lié avec une autre table, l'ordre dans lequel on commence la suppression est-il important? par exemple, on a une table client, et une autre achat, lorsque je veux supprimer le client, je commence par la table Achat puis client, ou l'ordre n'est pas important?
l'ordre est important
j'imagine que pour client et achat : un client peut faire plusieurs achat et un achat ne concerne qu'un client (relation 1,N donc)
Par conséquent, tu es obligé de supprimer l'achat (ou les achats) avant le client sinon tu va perdre les achats (tu ne sais plus à qui ils appartiennent, ils ne sont liés à rien et donc ils vont "pourrir" dans la bdd pour rien)
oui exactement, et je tien a vous remerciez tous TOUS ET TOUS :d, merci infiniment.
l'importance des clés étrangère
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales