Forum Programmation.SQL Gérer un ordre prédéfini par l'utilisateur

Posté par (page perso) .
Tags : aucun
0
4
sept.
2006
Hello,

Je 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.
  • # \o/

    Posté par . Évalué à 2.

    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 ?

    Posté par . Évalué à 3.

    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 :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.