Možností je více než jen ty dvě, které zmiňujete. Existují:
- Seznam sousedství ("parent_id" používá téměř každý)
- Vnořené sady
- Výčet cesty
- Tabulka uzavření (neboli vztah sousedství)
Viz moje odpověď na "Jaký je nejúčinnější/elegantnější způsob, jak analyzovat plochý stůl do stromu? "
Nebo pár knih:
- "Stromy a hierarchie v SQL pro Smarties “ od Joea Celka.
- "Návrhové vzory SQL “ od Vadima Tropaška.