Er zijn meer opties dan alleen de twee die je noemt. Er zijn:
- Aangrenzende lijst (de "parent_id" die bijna iedereen gebruikt)
- Geneste sets
- Padtelling
- Sluitingstabel (ook bekend als Adjacency Relation)
Zie mijn antwoord op "Wat is de meest efficiënte/elegante manier om een platte tafel in een boom te ontleden? "
Of een paar boeken:
- "Bomen en hiërarchieën in SQL voor slimmeriken " door Joe Celko.
- "SQL-ontwerppatronen " door Vadim Tropashko.