Questo tipo di questo è probabilmente più adatto per un grafico stile di archiviazione dati. Qualcosa di simile a come Facebook mantiene le gerarchie delle relazioni.
Se sei vincolato e determinato a usare MySQL, probabilmente potresti farla franca con il tuo schema usando una ricerca ricorsiva. Dal momento che il tuo albero può essere di profondità variabile, potresti iniziare ad autounirti in un determinato luogo e "camminare" lungo un ramo in modo ricorrente fino a quando non hai più trovato discendenti. Restituisci quel ramo e inizia il prossimo. Processo simile per raggiungere i genitori.