Есть ли более эффективный способ хранения несбалансированного дерева в реляционной базе данных?

Я пытаюсь создать набор таблиц для хранения несбалансированного дерева. Подумайте о чем-то, что может быть представлено в элементе управления древовидной структуры в пользовательском интерфейсе, таком как представление объектной модели документа (DOM), оглавление (TOC) книги или дерево решений.

В последние годы я всегда делал следующее (упрощенно).

Root
-----
Id
... (metadata about the root)

Node
-----
Id
RootId
ParentNodeId
... (other metadata about the node)

Я мог бы сбросить корневой объект в базу данных NoSQL или в кэш в памяти, но если бы я хотел использовать СУБД, имеет ли эта схема какой-либо недостаток? Это единственный способ хранить эту информацию?

Я, вероятно, намекаю на эффективность запросов, так что запрос данных занимает меньше времени, а не эффективность хранилища как такового. Поэтому я не спрашиваю, как оптимизировать хранимые байты. Скорее, эта конструкция поддается проблемам в эффективном запросе данных.

Я понимаю, что эффективность запроса этих данных больше зависит от метода запроса, то есть от дизайна запроса. Но будет ли сама структура или схема давать определенные недостатки? Это мой вопрос.

0 ответов

Другие вопросы по тегам