Bonjour à tous !

Je suis en train de créer un système de catégorie en utilisant le comportement Tree.
Le seul problème c'est qu'apparemment cakephp n'écrit pas id qui se suivent dans la table si l'ont fait des suppressions...

Dans la vidéo de Grafikart concernant ce comportement, ce problème n'existe pas... les id se suivent tjs et il n'y a pas de "trou" entre chaque même après des suppressions. Ce qui en soit est plutôt un comportement logique qui ne s'applique pas en général dans les base de donnée...

Y a-t-il une possibilité de dire à Cake de vérifier le dernier id de la table et de créer l'id suivant ??

Merci par avance de vos réponses :)

4 réponses


Euh pourquoi tu veux utiliser l'ID le comportement tree n'utilise pas ce champs.

sko
Auteur

Je m'en suis rendu compte après... j'ai cru à un moment que ça me posait un problème...

Par contre du manière générale, est-ce qu'il y a une manière simple pour garder une table avec des id correspondant au nombre de contenu réel plutôt que de cette manière où il ne correspond plus à grand chose au bout d'un moment d'utilisation de la bdd ?

Salut, comme j'étais plus jeune et insouciant j'ai essayé de résoudre ce problème des id.

La seule solution que j'ai trouvé c'est de compté de le nombre d'enregistrements, et de réinitialisé les id grâce à une boucle for. Le problème que cela pose, c'est que sa fait énormément de traitement dès que tu as une grosse base de données (plus de 1000 enregistrement par table), également si tu mes l'action des que quelqu'un supprime un post, tous les biens change d'id, du coup si tu as du monde sur ton blog, tout le monde perd la lecture du post sur lequel il ait.

C'est pourquoi je n'ai jamais mais en place cette solution, mais tu peux toujours la développer.

sko
Auteur

En fait, ce que je voulais dire plutôt c'est :
pourquoi en enregistrant en bdd, la valeur de l'autoincrement ne prend pas la valeur de l'id enregistré le plus + 1, plutôt que de ne jamais se réinitialiser.
Bien sur, il ne faudrait pas changer les id des données déjà enregistrées, même en cas d'une suppression d'une entrée en plein milieu, sinon ça mènerait à une catastrophe complète.

Ça me paraitrait plus logique ainsi... après la logique on s'en fout un peu puisque ça marche très bien comme ça ;)