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/数据库方面的专家。发挥你的团队优势。
这篇关于电子商务应用中对产品列表的动态过滤的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:电子商务应用中对产品列表的动态过滤
- 如何使 JFrame 背景和 JPanel 透明且仅显示图像 2022-01-01
- 转换 ldap 日期 2022-01-01
- 如何指定 CORS 的响应标头? 2022-01-01
- 将 Java Swing 桌面应用程序国际化的最佳实践是什么? 2022-01-01
- java.lang.IllegalStateException:Bean 名称“类别"的 BindingResult 和普通目标对象都不能用作请求属性 2022-01-01
- GC_FOR_ALLOC 是否更“严重"?在调查内存使用情况时? 2022-01-01
- 未找到/usr/local/lib 中的库 2022-01-01
- Eclipse 的最佳 XML 编辑器 2022-01-01
- 在 Java 中,如何将 String 转换为 char 或将 char 转换 2022-01-01
- 获取数字的最后一位 2022-01-01