Se vuoi mantenere quello schema sul database devi ragionare appunto in modo ricorsivo (adjacency list model)
E` il sistema piu semplice dal punto di vista dell'implementazione, ma ha appunto il difetto della ricorsione... ad esempio un menu su 5 livelli richiede 5 query
Il punto debole è quindi nelle prestazioni, però è anche vero che se il tuo albero ha pochi livelli di profondità, potresti anche non risentirne

L'alternativa è usare appunto la tecnica dei netsted set: implementazione piu laboriosa ma, indipendentemente dal numero di livelli, fai tutto con una query

Entrambe le tecniche sono spiegate nell'articolo linkato sopra, con tanto di esempi