Надо разместить в SQL дерево произвольной арности.
Понятно, таблица treeitem и в ней parentId как FK на ее же id
Проблема же вот в чем. У дерева должен быть заголовок, содержащий данные, относящиеся к дереву в целом, а не к элементам. Хорошо, еще таблица tree
А теперь вопрос — как их связать ? Необходимо, чтобы можно было 1) по tree.id получить корень его дерева и 2) имея treeitem.id любого элемента дерева, можно было получить заголовок дерева
Пока вижу только одно решение — в каждом treeitem иметь treeId как FK на tree. Однако это значит, что у всех узлов этого дерева будет храниться этот treeId, что есть дублирование данных.
Можно ли его избежать ?