Retourner aux forums || Retourner au forum Programmation.SQL
Programmation.SQL : Gérer un ordre prédéfini par l'utilisateur
Posté par Slainer (Jabber id, page perso, ) le 04 septembre 2006Je suis en train de sécher sur un problème surement tout bete (ou pas)... Quelle est la meilleure manière dans une table pour permettre à l'utilisateur de gérer soit meme l'ordre d'affichage des éléments ?
En gros, je veux pouvoir donner à l'utilisateur dans mon programme le choix de placer les éléments de la table dans l'ordre qu'il veut avec des ascenseurs... J'ai pensé rajouter une colone qui contient pour un élément donné l'id de l'élément précédent. Est-ce que c'est pour vous la meilleure solution ? mais dans ce cas là, cela m'oblige-t-il pas à lancer une boucle de X requetes s'il y a X éléments ?
Avez vous d'autres ou meilleure solutions ?
Merci pour votre éclairage :).
Nicolas.
> Lire le message (2 commentaires, moyenne: 2,5).
\o/
tu ne peux pas faire 36 tris en SQL.
C'est order by [asc|desc] sur un colonne, au pire couplé à des group by.
Soit tu gères ça en SQL, et le tri se fait selon une ou plusieurs colonnes.
Soit l'ordre peut être totalement aléatoire et au bon vouloir de l'utilisateur, dans ce cas il te faudra une table en plus pour stocker l'ordre d'un enregistrement. Avec un champ 'entier' que tu incrémenteras/décrémenteras selon que l'utilisateur clique sur la flèche du haut ou du bas pour monter ou descendre l'élément, par exemple.
interface ?
Attention là, tu mélanges la couche de présentation et la couche applicative. Les données que tu vas extraire sont les même, quelque soit l'ordre dans lequel l'utilisateur les veut.
Du coup, comme côté SQL, tu ne veux pas savoir a priori dans quel ordre les données seront triées, autant ne pas les trier du tout, et laisser l'interface trier selon les critères de l'utilisateur. A moins que tu veuilles afficher des listes avec des millions d'éléments, le premier quicksort venu devrait suffir.
Résumé de mon post : ne trie pas les données lors de l'extraction, trie les juste dans l'interface :-)
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.SQL



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.