Der er flere muligheder end blot de to du nævner. Der er:
- Adjacency List (det "parent_id", som næsten alle bruger)
- Indlejrede sæt
- Stioptælling
- Lukningstabel (alias tilstødende forhold)
Se mit svar til "Hvad er den mest effektive/elegante måde at parse en flad tabel til et træ? "
Eller et par bøger:
- "Træer og hierarkier i SQL for Smarties " af Joe Celko.
- "SQL-designmønstre " af Vadim Tropashko.