Jest więcej opcji niż tylko te dwie, o których wspomniałeś. Są:
- Lista sąsiedztwa (czyli „parent_id”, z której prawie wszyscy korzystają)
- Zestawy zagnieżdżone
- Wyliczanie ścieżek
- Tabela zamknięcia (znana również jako relacja sąsiedztwa)
Zobacz moją odpowiedź na „Jaki jest najbardziej wydajny/elegancki sposób przetworzenia płaskiej tabeli na drzewo?
Albo kilka książek:
- "Drzewa i hierarchie w SQL dla Smarties ” autorstwa Joe Celko.
- ”Wzorce projektowe SQL " Wadima Tropaszki.