在多个到多个链接表上计算结果的最佳方法

时间:2017-01-17 14:12:33

标签: web many-to-many rdbms

我使用php和mysql进行电子商店。在每个类别的产品部分,我需要一个包含所有适用品牌和产品数量的导航。我的问题是,产品和兼容品牌的类别和产品是多对多的关系。因此,在查看类别时,天真的方法是获取所有产品(通过products_categories表),为每个获取所有兼容品牌(通过products_brands表)并计算它们。从我的研究中我还发现,在这种情况下,多个表上的连接很昂贵,需要4个连接。我的另一个想法是创建表来保存这些信息,但这在添加/删除类别,产品,品牌等时需要额外的操作,并且可能以维护噩梦结束。有更好的方法吗? 谢谢

1 个答案:

答案 0 :(得分:0)

我不确定你是否可以通过给定的设计来逃避连接。您可以通过在Products_Categories和Products_Brands之间创建视图来略微改进。这将允许您更好地优化从不同上下文(产品,类别,品牌)查询这些数据的方式。而不是加入主表进行描述,我会单独查询这些表并在其上放置缓存策略,让客户端处理整理ID和描述。希望这是有道理的。