single table. nested tree + ordinal parent reference. nests are calculated in a trigger on insert.
pgsql-sql by date:
Соглашаюсь с условиями обработки персональных данных