Organisation des ID dans une table

Résolu/Fermé
SearchLab Messages postés 4 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008 - 15 déc. 2008 à 16:58
SearchLab Messages postés 4 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008 - 16 déc. 2008 à 19:24
Bonjour,

J'ai créé une base de donnée avec : id, poste, description
J'ai créé les fonctions Ajouter, modifier, Supprimer.
Jusqu'ici tout marche.

Lorsque je supprime un enregistrement par exemple l'enregistrement 3 sur 5, cela me crée un 'trou' au niveau de mes id et je me retrouve donc avec les id 1, 2, 4, 5.

Quelle est la solution pour avoir un 'ordre' avec des id 1, 2, 3, 4 au lieu de 1, 2, 4, 5 ?
Faut il passer par un script qui va recopier tous les champs pour boucher les trous ?

2 réponses

Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
16 déc. 2008 à 00:45
Je pense que tu n'as pas compris le principe des ID, ce n'est pas le numéro d'ordre, mais un numéro Identifiant la ligne de ta table... Il doit rester constant pour pouvoir faire des liens sur ton élément...
Si tu veux un numéro d'ordre, il te suffit de compter les réponses en partant de 1.
0
SearchLab Messages postés 4 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 11:53
Bonjour, merci de ta réponse.
En fait lorsque je regarde ma table au niveau des champs ID DANS phpmyAdmin, je me retrouve avec 1, 2, 4, 5, 9, 15 etc C'est ça qui me dérange au lieu de 1, 2, 3, 4, 5, 6.
Ce n'est pas pour avoir les adresses des enregistrements, c'est VISUEL dans ma table, j'ai l'impression que ce n'est pas propre. Ce n'est pas pour interroger tel ou tel ligne, Je sais trés bien que pour 6 enregistrement avec Comme ID 1, 2, 4, 5, 9, j'aurais 1, 2, 3, 4, 5, 6 dans l'exploitation de ma requête.
Dans ActionScript il y a par exemple l'effondrement de pile.

J'espère avoir été clair dans l'explication de mon 'Problème'.
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
16 déc. 2008 à 18:50
Je vois pas bien ton problème, c'est plus esthétique à mon avis...

Mais c'est normal avec les ID d'avoir du désordre et des trous, au fur et a mesure que tu modifie ta table. Si à chaque modification tu remets de l'ordre dans les ID, tu ne peux plus les utiliser pour référencer les lignes de ta table dans une autre (alors que c'est leur utilisation).

Par exemple, tu as une table de adresses, avec des ID, et une table de personnes qui référence ces adresses via l'ID.
Si tu modifies ta table adresse et que tu remets de l'ordre dans les ID des adresses, tu devras aussi faire la traduction dans la table de personnes, sinon, ils auront une adresse qui n'est pas la leur... Ça n'a pas de sens de faire comme ça...

L'ID est un identifiant unique qui est attribué à une donnée lors de sa création, il ne faut pas faire de changement après... Sinon on perd le fil.
0
SearchLab Messages postés 4 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 16 décembre 2008 > Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009
16 déc. 2008 à 19:24
Oui je crois que mon problème est plus esthétique finalement à la lecture de ta réponse.
Je pensais qu'il y avait peut être un moyen pour optimiser cela. Je trouve ça bizarre d'avoir des trous. J'avais imaginé qu'il pouvait y avoir des routines serveurs ou un langage pour 'nettoyer' ces 'trous' dans la base. Je crois que je vais pouvoir continuer à me concentrer sur l'essentiel....
Je te remercie pour ta réponse !
0