Bonjour,
Voila, comme vous le savez, SQL, lorqu'il ajoute un enregistrement, il l'écrit à la suite des autres. Le nouvel enregistrement est dond à la fin ; on peut pas par exemple insérer un enregistrement entre la ligne 123 et 124.
Cela me pose un problème car dans mon application, les données sont récupérées dans une liste qu'il est possible de modifier. Or, si dans la liste, l'insertion est possible, SQL enregistre le nouvel élément à la fin et modifie donc l'ordre établi par la liste.
Je prévois que ma base puisse contenir plus de 10000 (c'est des timbres) enregistrements ; ce qui exclut toute duplications partielles des tables comme j'ai pu le voir faire.
J'ai pensé à utiliser la technique des listes chainées en C : un champ supplémentaire à ma table contiendrait l'ID de l'élément qui suit. On l'appelera SUIVANT. Anisi, l'ajout ou la suppression d'un élément entrainerait la modification du champ SUIVANT de l'élément précédent. Par extention, il est également possible de créer deux champs PRECEDENT et SUIVANT pour simuler une liste doublement chainée.
L'ennui, c'est que ça me parait lourd à gérer et que cela peut entrainer des pertes de performances. A noter que cela ferait répéter une requette autant de fois qu'il n'y a d'enregistrements. Aussi, peut-être avez-vous des retour d'expériences sur ce procédé et si c'est réellement envisagable ? Dans la négative, peut-être existe t'il d'autres techinques ?
Merci
Nicolas