Identifiant

Eléphant du PHP | 86 Messages

31 mars 2006, 17:35

Bonjour

voila mon probleme je cré des fiches dans la table "fichesav" et leur identifiant est auto incrémenter. J e doi pouvoir les suprimer et jusque la tout va bien mais mon probleme est que lorsque je suprime une fiche sa cré un trou dans ma liste d identifiant. Je m explique imaginon que nous avons 4 fiches:

identifiant | nomFiche

1 | fiche numero 1
2 | fiche numero 2
3 | fiche numero 3
4 | fiche numero 4

si je decide de suprimer la fiche numero 2 nous aurons cela :

identifiant | nomFiche

1 | fiche numero 1
3 | fiche numero 3
4 | fiche numero 4

mai je voudrai avoir cela :

dentifiant | nomFiche

1 | fiche numero 1
2 | fiche numero 3
3 | fiche numero 4

et il y a un autre probleme car si j arrive a modifier les identifiant et que par la suite je decide une nouvelle fiche l auto incrementation fera que nous aurons cela :

dentifiant | nomFiche

1 | fiche numero 1
2 | fiche numero 3
3 | fiche numero 4
5 | fiche numero 5

et je voudrai naturelement que sa face sa :

dentifiant | nomFiche

1 | fiche numero 1
2 | fiche numero 3
3 | fiche numero 4
4 | fiche numero 5

donc voila je ne sai pas si j est ete sufisamen claire sur mon probleme mais si vous avez compris y a t il une solution a mon probleme ???

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

31 mars 2006, 17:50

Est-ce que ton identifiant de fiche est également la clé primaire de ta table ?

Si c'est le cas, je te déconseille vivement d'y toucher pour plusieurs raison :
- si tu as des clés étrangères qui pointent vers cette clé primaire, il va te falloir faire des modifs en boucle
- une clé primaire n'est qu'un valeur de fonctionnement qui ne doit jamais être affichée ou mise à la disposition des utilisateurs
- pour ceux qui mémorise les identifiants, tu risques d'apporter la confusion.

Un exemple que j'ai déjà entendu sur ce forum :
est-ce qu'a chaque fois que quelqu'un meurt, on redéfini les numéros de sécurité social ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 312 Messages

31 mars 2006, 17:50

Est-ce vraiment un problème ?
Je veux dire : l'identifiant il sert juste à faire en sorte que ton entrée soit unique, donc peu importe que tu ais des "trous" dans ta liste des identifiants.

Le fait qu'il ne cherche pas à combler les trous te permet de classer les entrées par rapport à leur date de création, simplement en les triant par rapport à leur ID.