Clé primaire, secondaire a quoi ca sert?

Fermé
Makari - 13 juin 2008 à 15:32
DoulyCreations Messages postés 187 Date d'inscription lundi 11 avril 2011 Statut Membre Dernière intervention 23 mars 2015 - 10 juin 2011 à 22:59
Bonjour,

je fais un jeu en php avec une bdd, et je me rends compte que je ne sais pas du tout a quoi servent les clés primaires et secondaires :p
je mets bien en clé primaire le champs id des tables mais au final je n'en vois pas l'utilité, quand aux clés secondaires, je n'en metes jamais. Pourtant cela doit bien servir a quelques chose, non ?

quand je fais une requete dison qu'il y'a les deux tables suivantes :

joueur
idjoueur
login
pass
mail
etc..


ville
idville
idjoueur
nomville
etc..


si je veux la liste des viles du joueur paulo je ferai:

select nomville FROM joueur, ville WHERE login=paulo AND joueur.idjoueur=ville.idjoueur

et ca marchera bien que je n'ai pas de clé, alors a quoi servent elles finalement ? est ce que ca facilite la vitesse de traitement de la requete ou quelque chose comme ca ?
A voir également:

3 réponses

doctormad Messages postés 430 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 2 avril 2015 99
13 juin 2008 à 15:39
Salut,

Les clefs primaires c'est pour identifier de facon unique tes enregistrements et puis comme c'est des entiers c'est facile à traiter.

Les clefs secondaires sont comme tu le soulignes très justement inutiles dans la pluspart des cas.

Elles sont cependant indispensables si tu veux faire des suppressions en cascade par exemple. Et certains dataobjects te permettent de faire des recherches associatives grâce à elles.

Ni les primaires ni les secondaires n'améliorent les temps d'exécution, l'indexation des champs par contre oui. Donc si ta clef primaire est indexée cela sera + rapide de faire des traitements sur celle-ci.
5