io ho fatto un programma basato su una struttura ad albero, il database era composto di due tabelle:


CODICE
codice -> nome o numero del codice, univoco
descrizione -> indovina


LEGAMI
padre -> il livello di partenza
figlio -> un figlio del codice precedente

praticamente, si otteneva una roba del tipo


00 padre
01 figlio 1
02 figlio 2
03 figlio 3
10 nipote 1
11 nipote 2

che nella tabella legami erano rappresentati così
00 - 01
01 - 10
01 - 11
00 - 02
00 - 03


e così via.. spero di essermi spiegato