Yii:具有MANY_MANY类别和类别的产品可能有也可能没有。获取所有产品

时间:2013-12-02 20:08:58

标签: php mysql product yii

我有以下SQL架构:

tbl_products :  - ID   - id_category

tbl_categories :  - ID   - id_parent

tbl_products_categories : - id_product - id_category

我的问题是:在我的类别模型中,我需要声明什么样的关系来获取此类别的所有产品以及它的孩子?我可以从关系中获取所有产品,还是我必须为每个子类别制作循环方法,然后合并所有产品并将其返回?

有人有任何想法吗?

2 个答案:

答案 0 :(得分:0)

嵌套关系,例如类别或菜单项,非常棘手。当您有约束时(例如最大子项数),情况会稍微简单一些。在这种情况下,您的产品标准将包含与您可能的关系一样多的连接(在这种情况下我不会使用Yii的关系活动记录;在我看来它会使它太复杂)。

否则,是的,最好的办法是循环遍历每个关系并返回一个合并的数组。注意:这可能是非常高性能的,因此您可能希望在执行此操作的页面上执行某种缓存。

答案 1 :(得分:0)

由于它是多对多的,因此每个产品都可以与当前所需的孩子及其所有父母相关联,因此当您查询父母时,所有儿童产品也将是父产品。