我的系统有3个对象 - Brands
,Categories
和Products
。我使用Nhibernate作为我的ORM。
产品已分配给一个brand
和多个Categories
。对于我们正在建设的电子商务网站,我们需要在左侧显示品牌菜单。对于每个品牌,我们的想法是展示那些只有该品牌产品的类别。
例如,如果我们有3个类别 - 露营,徒步旅行和攀爬,以及3个品牌A,B,C。如果品牌A没有属于“攀爬”类别的产品,则该类别不会显示。
问题是如何有效地做到这一点。对于每个品牌,它需要遍历每个类别,并检查当前品牌下该类别下是否至少有一个产品。有200个类别和20个品牌,在最坏的情况下,这将导致大约2000个数据库调用。
另一种选择是将所有产品加载到内存中,但如果有很多产品(20,000 +),这种方式也会很慢。
我能做的任何想法/优化,使其加载速度更快?