是否有任何已知的模式/算法如何以正確的方式執行排序或篩選記錄列表(從數據庫)?我目前的嘗試涉及使用提供一些過濾和排序選項的表單,然後將這些條件和排序算法附加到我現有的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