Clé primaire, secondaire a quoi ca sert? [Fermé]

Signaler
-
Messages postés
187
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
23 mars 2015
-
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 ?

3 réponses

Messages postés
430
Date d'inscription
mercredi 28 novembre 2007
Statut
Membre
Dernière intervention
2 avril 2015
99
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Je vois.
Je ne connais rien sur l'indexation, pourrais tu me dire ou trouver de la documentation a ce sujet ?
(ou me l'expliquer si c'est rapide ^^)

merci pour la réponse sinon ;)

L'indexation c'est bien relou à faire, les boites par ex engagent un dba payé 7k/j pour en faire, donc laisse beton à ton niveau ça doit pas trop servir
Messages postés
187
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
23 mars 2015
19
Petite précision, il faut que le moteur de stockage des BDD soit en InnoDB pour utiliser des traitement en cascade, ce qui n'est pas le cas de la plupart des serveurs web car ça demande beaucoup trop de ressources...
C'est plutôt fort utilisé en prog logiciel par contre.

Donc évidemment pour les clefs secondaires en web: ça n'est vraiment pas utile