cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
7 déc. 2005 à 11:16
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
7 déc. 2005 à 11:52
Bonjour à tous,
"Aieuuuuuuu" m'a dit hier que une table n'avais pas besoin de contenir une clée primaire J'ai oublier de lui demander :
Si ma table contient deux clée etrangère dont l'association des deux
est uniques est ce que c'est bon ? ou bien si ma table ne contient rien
d'unique est ce que c'est bon quand même ?
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20112 7 déc. 2005 à 11:27
re,
les clef primaires et etrangere ne sont en aucun cas obligatoires.
elles te servent juste a assurer l'integrité de tes données
exemple :
dans une table qui contient des clients, tu vas par exemple mettre une clef primaire sur le numéro de client, pour etre sur de ne jamais avoir deux clients ayant le meme numéro (après une manip a la main dans la base, ou un programme qui fonctionne mal)
avec la clef primaire, l'ajout ne pourra pas avoir lieu et provoquera une erreur. Ca te permet aussi de pouvoir identifier de facon unique chacun de tes clients.
de meme pour la clef etrangere.
dans une table qui contient les commande, tu va rattacher chaque commande a un client. tu va donc définir une clef etrangere sur le champs qui contient le numero de client correspondant a la commande, afin de t'assurer que ce numero existe bien dans la table des clients. ainsi tu ne pourra pas ajouter une commande qui ne correspond a aucun client, et tu ne pourra pas non plus supprimer un client qui a une commande. ainsi tu sera sur de n'avoir jamais de commande qui ne sont rattachées a aucun client.
c'est donc a toi de voir en fonction des données que tu veux stocker les clefs primaires et etrangeres qu'il te faut.
si je me souviens bien de ton cas, tu rattchais des perosnnes a des groupes.
il faut donc mettre des clefs etrangere pour t'assurer que chaque personne existe bien dans la table personne. idem pour que les groupes existent bien.
par contre pour ce qui est de la clef primaire, je ne sais pas si elle est tres utile, mais elle pourra, si tu la crée sur les deux champs, t'eviter d'avoir une personne ratachée deux fois au meme groupe. la c'est a toi de voir en fonction de la facon dont tu veux gerer tes données.
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 20102 7 déc. 2005 à 11:52
Merci de cette réponse si complète,oui c'est très clair, c'est pas une obligation mais ca sert pour l'integrité des données afin que la base ne finisse pas pas devenir n'importe quoi à terme.