En las FAQ's del foro PHP tienes un ejemplo de una función recursiva (y "modelo de datos" a emplear) para crear tu estructura de datos "jerárquica").
En ese caso se usa una sóla tabla y en ella un campo extra que define "quien es el registro padre" o de quien depende. A base de "recusividad" se recorre todo el arbol para representar su "jerarquía" en el mismo.
http://www.forosdelweb.com/showpost....&postcount=146
Un saludo,