データベース (MySql) の 2 つのテーブル間に多対多の関係があります。
- カテゴリ (id、名前、id_parent)
- 音(ID、名前)
カテゴリは1 つの親カテゴリを持つことができるため、カテゴリは多くの子を持つことができます。カテゴリに少なくとも 1 つの子がある場合、そのカテゴリにはサウンドがありません。サウンドと子供のカテゴリを一緒にすることはできません。
したがって、親カテゴリの場合、子を持つ可能性のある子を持つ可能性のあるすべての子を取得したい (...) と、すべての子の音を再帰的に数えたいと考えています。
例:
Cat -> (CCat1 -> CCCat11(2音), CCat2 (5音), CCat3 -> CCat31 -> CCCat311 -> (CCCCat3111 (10音), CCCCat3111 (1音))
深い制限はありません。そのため、「再帰的に」サウンドをカウントする方法が必要です。
- 猫には3人の子供がいます。
- CCat1 には 1 人の子がいます。
- CCat2 には子がありません。
- CCat3 には、2 つの子を持つ 1 つの子を持つ 1 つの子があります。
Cat.nbSounds = 18