Если вложенные карты хеша или массивы могут быть созданы, то я могу просто спуститься по таблице с начала и добавить каждый объект к вложенному массиву. Я должен проследить каждую строку до корневого узла для знания который уровень во вложенном массиве вставить в. Я могу использовать memoization так, чтобы я не должен был искать того же родителя много раз.
Редактирование: Я считал бы всю таблицу в массив сначала, таким образом, она не будет неоднократно запрашивать DB. Конечно, это не будет практично, если Ваша таблица будет очень большой.
После того, как структура создается, я должен сделать, глубина сначала пересекает через нее и распечатывает HTML.
нет никакого лучшего фундаментального способа хранить эту информацию с помощью одной таблицы (я мог быть неправым хотя;), и хотел бы видеть лучшее решение). Однако при создании схемы использовать динамично созданные таблицы базы данных тогда Вы открыли совершенно новый мир в жертве простоты и риске ада SQL;).
Согласно быстрому grep в документации, эти команды не могут выполняться в транзакциях:
nextval
и setval
операции над последовательностями никогда не откатываются. REINDEX DATABASE
REINDEX SYSTEM
Есть статья о транзакционный DDL в PostgreSQL Wiki