web-dev-qa-db-fra.com

Meilleures pratiques pour la recherche de noms?

J'ai une application qui vous permettra de consulter les salaires des fonctionnaires. J'ai quelques cases multisélection pour affiner la recherche par rôle et département. Je réfléchis à la façon de concevoir la recherche de nom.

Existe-t-il des bonnes pratiques claires? Dois-je avoir un champ de prénom et nom? Un champ de nom unique qui permet à l'utilisateur d'entrer n'importe quel nom? Quelle logique SQL dois-je connecter aux champs de saisie de la base de données? Dois-je faire une recherche "like" pour renvoyer toutes les lignes qui pourraient correspondre à la personne?

Il semble que l'idéal serait d'avoir une boîte de recherche Google qui renvoie tous les résultats possibles sur le prénom et le nom. Il n'y a que 3k lignes dans la base de données, donc cela semble faisable.

2
bernie2436

Nous avons le même défi dans un environnement différent où nous utilisons beaucoup la recherche. Outre le tri de chaque colonne de A-Z et Z-A, nous avons également un filtre "onKeyUp" actif à partir du chracter no trois.

Cela signifie que l'utilisateur n'a qu'à entrer trois caractères pour filtrer le contenu sur n'importe quelle colonne. Techniquement, ce n'est pas une "recherche" en soi, mais l'expérience est la même que Google Instant Search. Et c'est ça qui compte.

Je m'en tiendrai donc au terme plus familier "recherche" au lieu de "filtre". C'est du moins ce que nous faisons, et notre client en est satisfait :-)

1
Benny Skogberg

Ce que je ferais, c'est de faire une seule entrée de texte comme élément de recherche principal et de cacher toutes les autres choses dans un menu réduit.

En ce qui concerne SQL, vous ne recherchez pas une recherche similaire, mais recherche en texte intégral en utilisant MATCH() ... AGAINST(), et récupérez ces résultats en temps réel en utilisant AJAX/jQuery.

Une autre chose que vous pourriez essayer est d'utiliser datalist de HTML 5. Fondamentalement, vous envoyez tous les noms de la base de données avec la page lors du chargement, éliminant ainsi les allers-retours supplémentaires vers le serveur. Cela vous donne une réponse instantanée, pas une réponse instantanée comme pourraient le fournir des suggestions de chargement dynamique.

Assurez-vous simplement de tester soigneusement si cette approche n'affecte pas trop la vitesse de chargement des pages, et gardez à l'esprit que la compatibilité du navigateur est bonne, mais pas parfaite.

0
Tom

Pensez Google. Une zone de recherche avec filtrage incrémentiel/saisie semi-automatique!. Si vous pouvez même inclure des photos du personnel avec les résultats, c'est encore mieux. C'est rapide et efficace.

enter image description here

0
Luis