无论是顶级类别还是子类别,都没有理由为一张以上的“类别”使用多个表格。它们都只是“类别”。
因此,有一个称为“类别”的表,其中包含一个parent_id
字段:
// categories table
id
name
user_id
parent_id
如果要提取所有顶级类别,只需对categories
表运行查询,条件parent_id
为空。
然后,当您要提取子类别时,只需categories
使用条件parent_id = 123
(或其他条件)对表运行查询。
这样不仅可以使所有内容保持整洁,而且还可以扩展,以防您要继续添加子子子子类…等。
另一个选择是使用CakePHP的TreeBehavior。
我个人只是使??用我上面建议的方式,但是可能只是因为我没有花时间真正地理解这种行为。