1

我正在尝试找到一种有效的方法或算法来帮助我解决下面描述的问题。

假设我们有一个包含大量产品的数据库。每个产品都有大量的属性,尽管这些属性可以在产品之间共享。此外,产品被组织成多个层次类别。一个例子:首页 -> 厨房 -> 洗碗机 -> GE Electric Dishwasher Model blablabla。

我想向浏览我们产品的用户展示他可以使用的可能过滤器列表。为了说明这一点,请考虑页面一侧的亚马逊产品过滤器:如果产品具有“价格”属性,那么它们会显示一个以较低价格和最高价格作为末端的滑块。如果属性是“品牌”,则他们有一个选定类别的所有子项的所有品牌列表。类别和属性是我们设计中的两个独立概念。

我的问题是所有计算这些过滤器都需要时间,因为我们有大量具有数十个属性的产品。有没有一种特殊的方法来执行这个过滤?我正在考虑事先计算每个级别的所有过滤器,但是由于用户可能会在更高的类别中应用过滤器并继续向下导航到更具体的类别,因此无论如何都需要重新计算/更新后面的类别。

我们已经尝试过:对于选定类别中的每个产品,我们计算属性的交集并基于它创建过滤器。结果不会被缓存,因为过滤器在应用时会从父类别传播到子类别。

PS:我使用的数据库是 SQL server 2012。如果需要更多信息来更好地回答/理解我的问题,请告诉我。此外,如果您对此问题有更合适的标签,请随时更新。

4

0 回答 0