Há uma descrição muito boa do gerenciamento de dados hierárquicos no mysql aqui:gerenciamento hierárquico dados Aqui está outro bom exemplo de criação de matrizes aninhadas:criação de matrizes aninhadas
Você pode pensar em usar o modelo Nested Set. Se você for consultar muitas coisas, é melhor do que o modelo de adjacência que você está usando agora.
Espero que ajude.