本文介紹了電子商務應用中對產品列表的動態過濾的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我需要您的一些意見,以便在以下情況下決定正確的方法。
我目前正在開發一個電子商務應用程序(一個在線購物網站)。
在這里,在應用程序的主頁上,我必須顯示商店中可用產品的列表。
最終用戶可以將過濾器應用于產品列表,以便只顯示滿足所應用過濾器的產品。(過濾器類似于顯示具有選定公司、價格范圍等的產品)。
所以,我的問題是關于應用過濾器的邏輯。
我有以下想法來實現這一要求。
當用戶在頁面上選擇不同的條件時,動態生成SQL查詢(通過使用必需的WHERE子句追加字符串),并在每個請求上激發生成的SQL。
已經在數據庫中設置了所有可能的SQL組合(比如在存儲過程中)。隨著用戶更改條件,請在存儲過程中選擇要運行的相應SQL。
如果有更好的方法來處理這個要求,有沒有人可以指導我?
任何投入都是高度重視的。
如果此上下文需要更多信息,請讓我知道。
謝謝。
推薦答案
對于您這樣的網站,有效的方法是不更改查詢以檢索要出售的不同項目,而是提供所有相同的項目,但更改它們在網站上的顯示順序。
因此,如果用戶想要定價為100-500美元的商品,您仍然會顯示100美元以下和500美元以上的商品,但首先顯示該范圍內的商品,然后以某種隨機順序顯示范圍外的商品。或者,如果有多個條件,您可以顯示除其中一個條件之外的所有項目。
這也解決了用戶要500美元以上的咖啡杯的問題。如果沒有匹配項,您不會給用戶0個可供選擇的項目,而是給他們一些其他項目,而不是任何價格的咖啡杯。如果用戶沒有要購買的項目,則他們可能會失去看到他們想要的東西的機會。
除了改變”ORDER BY”子句外,您可以用您提到的任何一種方式來實現它。
我個人的偏好是不使用存儲過程。
但是,如果您使用的是一個大型團隊,其中有數據庫使用方面的專家,該團隊可以優化數據庫使用并保持存儲過程的最佳狀態,那么這可能是一種選擇。
如果是一個單獨的Java開發人員或一小群Java開發人員,不要指望他們也是Java和SQL/數據庫方面的專家。發揮你的團隊優勢。
這篇關于電子商務應用中對產品列表的動態過濾的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,