电子商务应用中对产品列表的动态过滤

2022-04-01 00:00:00 algorithm sql e-commerce java

我需要您的一些意见,以便在以下情况下决定正确的方法。

我目前正在开发一个电子商务应用程序(一个在线购物网站)。 在这里,在应用程序的主页上,我必须显示商店中可用产品的列表。

最终用户可以将过滤器应用于产品列表,以便只显示满足所应用过滤器的产品。(过滤器类似于显示具有选定公司、价格范围等的产品)。

所以,我的问题是关于应用过滤器的逻辑。 我有以下想法来实现这一要求。

  1. 当用户在页面上选择不同的条件时,动态生成SQL查询(通过使用必需的WHERE子句追加字符串),并在每个请求上激发生成的SQL。

  2. 已经在数据库中设置了所有可能的SQL组合(比如在存储过程中)。随着用户更改条件,请在存储过程中选择要运行的相应SQL。

如果有更好的方法来处理这个要求,有没有人可以指导我? 任何投入都是高度重视的。 如果此上下文需要更多信息,请让我知道。

谢谢。


解决方案

对于您这样的网站,有效的方法是不更改查询以检索要出售的不同项目,而是提供所有相同的项目,但更改它们在网站上的显示顺序。

因此,如果用户想要定价为100-500美元的商品,您仍然会显示100美元以下和500美元以上的商品,但首先显示该范围内的商品,然后以某种随机顺序显示范围外的商品。或者,如果有多个条件,您可以显示除其中一个条件之外的所有项目。

这也解决了用户要500美元以上的咖啡杯的问题。如果没有匹配项,您不会给用户0个可供选择的项目,而是给他们一些其他项目,而不是任何价格的咖啡杯。如果用户没有要购买的项目,则他们可能会失去看到他们想要的东西的机会。

除了改变"ORDER BY"子句外,您可以用您提到的任何一种方式来实现它。

我个人的偏好是不使用存储过程。

但是,如果您使用的是一个大型团队,其中有数据库使用方面的专家,该团队可以优化数据库使用并保持存储过程的最佳状态,那么这可能是一种选择。

如果是一个单独的Java开发人员或一小群Java开发人员,不要指望他们也是Java和SQL/数据库方面的专家。发挥你的团队优势。

相关文章