est-il un motif connu/algorithme sur la façon d'effectuer le tri ou le filtrage d'une liste d'enregistrements (de base) de la manière correcte? Ma tentative actuelle implique l'utilisation d'un formulaire qui fournit des options de filtrage et de tri, puis j'ajoute ces critères et l'algorithme de tri à mon SQL existant. Cependant, je trouve qu'il peut être facilement abusé que les utilisateurs peuvent obtenir des résultats qu'ils ne sont pas censés voir.tri et le filtrage Documents
L'application que je suis bâtiment est un planificateur où je stocke tous les événements dans une table de base de données. Ensuite, en fonction du niveau/rôle/privilège de l'utilisateur, un sous-ensemble de données différent sera affiché. Par conséquent, ma requête peut être aussi compliqué que
SELECT *
FROM app_event._event_view
WHERE ((class_id = (SELECT class_id FROM app_event._ical_class WHERE name = 'PUBLIC') AND class_id != (SELECT class_id FROM app_event._ical_class WHERE name = 'PRIVATE') AND class_id != (SELECT class_id FROM app_event._ical_class WHERE name = 'CONFIDENTIAL')) OR user_id = '1')
AND calendar_id IN (SELECT calendar_id FROM app_event.calendar WHERE is_personal = 't')
AND calendar_id = (SELECT calendar_id FROM app_event.calendar WHERE name = 'personal')
AND state_id IN (1,2,3,4,5,6) AND EXTRACT(year FROM dtstart) = '2008'
AND EXTRACT(month FROM dtstart) = '11'
Comme je suis plus préoccupé de servir le sous-ensemble correct de l'information, les performances ne sont pas une préoccupation majeure au moment (comme sql mentionné a été généré par le script, clause par clause). Je pense à transformer toutes ces instructions SQL compliquées en vues, donc il y aura moins de chances que le SQL généré soit inapproprié.
les critères ne sont pas vraiment un problème majeur ici, je suis à la recherche d'une meilleure façon de faire filtrer et trier .... sur la requête SQL, il considère en fait que l'utilisateur peut lire ses/ses dossiers, est le enregistrer dans la catégorie correcte, l'état correct, etc. – Jeffrey04
Je ne pense pas que je comprends ce que vous entendez par filtrage, alors ... S'il vous plaît expliquer. –