我有以下SQL模式:
tbl_products:- id - id_category
tbl_categories:- id - id_parent
tbl_products_categories:- id_product - id_category
我的问题是:在我的分类模型中,我必须声明什么样的关系才能得到这个类别的所有产品,以及来自它的childs?我可以从一个关系中获得所有产品吗?或者我必须为每个子类别创建一个循环的方法,然后合并所有产品并返回它?
有人知道吗?
发布于 2013-12-02 21:16:58
嵌套关系,例如类别或菜单项之间的关系,是众所周知的棘手问题。如果您有约束,例如最大的子级数,情况就会简单一些。在这种情况下,产品的标准将包含尽可能多的连接(在这种情况下,我不会使用Yii的关系活动记录;在我看来,这会使它变得太复杂吗)。
否则,是的,最好的选择是递归遍历每个关系并返回一个合并数组。注意:这可能是难以置信的性能密集型,因此您可能希望在执行此操作的页面上进行某种缓存。
https://stackoverflow.com/questions/20336903
复制相似问题