Det finns fler alternativ än bara de två du nämner. Det finns:
- Angränsande lista (det "parent_id" som nästan alla använder)
- Inkapslade uppsättningar
- Sökvägsuppräkning
- Stängningstabell (alias Adjacency Relation)
Se mitt svar på "Vad är det mest effektiva/eleganta sättet att analysera en platt tabell till ett träd? "
Eller ett par böcker:
- "Träd och hierarkier i SQL för Smarties " av Joe Celko.
- "SQL-designmönster " av Vadim Tropashko.