если это зафиксировано на трех уровнях, и они концептуально различны (как в вашем расширенном примере), то я думаю, что вас смущает идея деревьев, где они не нужны. просто используйте таблицы и отношения, как если бы вы использовали любую другую проблему.
- стол для родителей
- таблица для детей (если у них всегда ровно два родителя, родители могут быть полями, в противном случае вам также понадобится таблица для отношений)
- таблица для атрибутов и другая для отношения «многие ко многим» между этим и потомками [или сохраните их в таблице потомков - см. Комментарий к DForck42 ниже]
деревья необходимы там, где узлы на разных уровнях - это «одно и то же». но они не очень подходят для SQL, поэтому я бы не стал пытаться использовать их там, где они не нужны.
обновление. из ваших комментариев ниже, я думаю, что вы говорите, что дети делятся на классы или типы, и что возможные атрибуты зависят от типа ребенка, но что значения этих атрибутов зависят от родителя.
в этом случае у вас совершенно другая проблема, больше похожая на OO-наследование. самое простое решение, которое я вижу, это то, что вы можете иметь разные таблицы для каждого вида детей. тогда каждая таблица имеет разные столбцы для разных атрибутов. дочерние таблицы ссылаются на родительские таблицы.
поэтому у вас будет родительская таблица с идентификаторами. тогда у вас может быть дочерняя таблица для "сайтов администратора". каждая строка этой дочерней таблицы будет ссылаться на родителя через идентификатор и содержать URL, CSS и т. д. в качестве столбцов. другой дочерний тип, такой как «страница конфигурации базы данных», будет находиться в другой таблице с другим набором атрибутов.
если у вас есть общие атрибуты, вы можете либо повторить их в каждой таблице, либо иметь таблицу «суперкласса».
подобные решения могут стать довольно сложными, и я бы предложил задать другой вопрос, когда у вас будет более четкое объяснение того, что вы хотите. здесь есть хорошее объяснение параметров - http://www.sqlalchemy.org/docs/orm/inheritance.html (игнорируйте части, относящиеся к SQLAlchemy, и просто посмотрите, как они по-разному используют таблицы для моделирования наследования).