Clé primaire , clé étrangère

Résolu
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 7 déc. 2005 à 11:16
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 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 ?



Par avance, merci..
A voir également:

2 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
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.

j'espere que c'est a peu pres clair ?!?
3
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
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.
0
Rejoignez-nous