То, что вы представили, выглядит как правильный дизайн дерева в базе данных. Однако ваши запросы могут усложниться, и вам может потребоваться множество запросов для некоторых задач, например, один для каждого уровня при прохождении глубины.
Однако также существует совершенно другой подход к реализации дерева в базах данных. Это немного нелогично, но если взглянуть на преимущества простоты запроса, становится очевидным, что существует большой набор преимуществ.
Прочитайте: http://articles.sitepoint.com/article/hierarchical-data-database
Кроме того, вам может быть лучше, если вы используете ORM , как Doctrine , чтобы реализовать дерево для вас вместе с операциями.