是否有任何已知的模式/算法如何以正确的方式执行排序或筛选记录列表(从数据库)?我目前的尝试涉及使用提供一些过滤和排序选项的表单,然后将这些条件和排序算法附加到我现有的SQL。但是,我发现它很容易被滥用,用户可能会得到他们无法看到的结果。排序和筛选记录
我正在构建的应用程序是一个调度程序,用于将所有事件存储在数据库表中。然后根据用户的级别/角色/权限显示不同的数据子集。所以我的查询可以那样复杂
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'
正如我对服务的信息的正确子集更值得关注,表现不是目前的主要问题(如提到的SQL由脚本,条款所产生的条款)。我正在考虑将所有这些复杂的SQL语句转换为视图,因此生成的SQL不适用的可能性会降低。
这里的标准并不是真正的主要问题,我正在寻找一种更好的方法来做过滤和排序....在sql查询中,它实际上考虑用户是否可以读取他/她的记录,是记录在正确的类别中,正确的状态等。 – Jeffrey04 2008-11-17 08:54:56