我有以下SQL架构:
tbl_products : - ID - id_category
tbl_categories : - ID - id_parent
tbl_products_categories : - id_product - id_category
我的问题是:在我的类别模型中,我需要声明什么样的关系来获取此类别的所有产品以及它的孩子?我可以从关系中获取所有产品,还是我必须为每个子类别制作循环方法,然后合并所有产品并将其返回?
有人有任何想法吗?
答案 0 :(得分:0)
嵌套关系,例如类别或菜单项,非常棘手。当您有约束时(例如最大子项数),情况会稍微简单一些。在这种情况下,您的产品标准将包含与您可能的关系一样多的连接(在这种情况下我不会使用Yii的关系活动记录;在我看来它会使它太复杂)。
否则,是的,最好的办法是循环遍历每个关系并返回一个合并的数组。注意:这可能是非常高性能的,因此您可能希望在执行此操作的页面上执行某种缓存。
答案 1 :(得分:0)
由于它是多对多的,因此每个产品都可以与当前所需的孩子及其所有父母相关联,因此当您查询父母时,所有儿童产品也将是父产品。