Guarda Gestione dei dati gerarchici in MySQL , in particolare la sezione denominata "Modello di set nidificato". Potrebbe essere necessario leggerlo un paio di volte prima che abbia senso (l'ho fatto), ma ne vale la pena. È un modo molto efficace per lavorare con i dati nidificati e recuperare le parti desiderate con una sola query.
Il lato negativo è che per gli aggiornamenti devi lavorare molto di più.