Dynamically applying filter to list of products in ecommerce application(电子商务应用中对产品列表的动态过滤)
问题描述
我需要您的一些意见,以便在以下情况下决定正确的方法。
我目前正在开发一个电子商务应用程序(一个在线购物网站)。 在这里,在应用程序的主页上,我必须显示商店中可用产品的列表。 最终用户可以将过滤器应用于产品列表,以便只显示满足所应用过滤器的产品。(过滤器类似于显示具有选定公司、价格范围等的产品)。
所以,我的问题是关于应用过滤器的逻辑。 我有以下想法来实现这一要求。
当用户在页面上选择不同的条件时,动态生成SQL查询(通过使用必需的WHERE子句追加字符串),并在每个请求上激发生成的SQL。
已经在数据库中设置了所有可能的SQL组合(比如在存储过程中)。随着用户更改条件,请在存储过程中选择要运行的相应SQL。
如果有更好的方法来处理这个要求,有没有人可以指导我? 任何投入都是高度重视的。 如果此上下文需要更多信息,请让我知道。
谢谢。
推荐答案
对于您这样的网站,有效的方法是不更改查询以检索要出售的不同项目,而是提供所有相同的项目,但更改它们在网站上的显示顺序。
因此,如果用户想要定价为100-500美元的商品,您仍然会显示100美元以下和500美元以上的商品,但首先显示该范围内的商品,然后以某种随机顺序显示范围外的商品。或者,如果有多个条件,您可以显示除其中一个条件之外的所有项目。这也解决了用户要500美元以上的咖啡杯的问题。如果没有匹配项,您不会给用户0个可供选择的项目,而是给他们一些其他项目,而不是任何价格的咖啡杯。如果用户没有要购买的项目,则他们可能会失去看到他们想要的东西的机会。
除了改变"ORDER BY"子句外,您可以用您提到的任何一种方式来实现它。
我个人的偏好是不使用存储过程。
但是,如果您使用的是一个大型团队,其中有数据库使用方面的专家,该团队可以优化数据库使用并保持存储过程的最佳状态,那么这可能是一种选择。如果是一个单独的Java开发人员或一小群Java开发人员,不要指望他们也是Java和SQL/数据库方面的专家。发挥你的团队优势。
这篇关于电子商务应用中对产品列表的动态过滤的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:电子商务应用中对产品列表的动态过滤
基础教程推荐
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01