我的数据库(MySql)中的两个表之间存在多对多关系:
- 类别(id、名称、id_parent)
- 声音(ID,名称)
一个类别可以有 1 个父类别,因此一个类别可以有多个子类别。如果一个类别至少有一个孩子,它就没有声音。我不允许声音和儿童类别在一起。
因此,对于父类别,我想获得所有可能有孩子的孩子(...),并且我想递归地计算所有孩子的声音。
例子:
Cat -> (CCat1 -> CCCat11(2 个声音), CCat2 (5 个声音), CCat3 -> CCat31 -> CCCat311 -> (CCCCat3111 (10 个声音), CCCCat3111 (1 个声音))
没有深度限制,这就是为什么我需要一种“递归”方式来计算声音。
- 猫有3个孩子。
- CCat1 有 1 个孩子。
- Ccat2 没有孩子。
- CCat3 有 1 个孩子有 1 个孩子有 2 个孩子。
Cat.nbSounds = 18