Здравствуйте, Chardex, Вы писали:
C> Мне кажется, что мое решение не совсем правильное, помогите пожалуйста разобраться
Вполне правильное решение, называется — связь многие ко многим. Как правило, навешивается ограничение уникальности на комбинацию полей (чтобы между двумя узлами не было двух связей); в принципе также можно на триггере проверять отсутствие циклов. Кроме того, в таблицу можно добавить еще поля — это будут атрибуты связи.
Можно нагородить и другие решения, но именно это — вариант "по умолчанию".