Как представить древовидную структуру в базе данных

Я начинаю проект и нахожусь на стадии проектирования: то есть, я еще не решил, какую структуру баз данных я собираюсь использовать. У меня будет код, создающий структуру, подобную «лесу». То есть много деревьев, где каждое дерево стандартно: узлы и ребра. После того, как код создаст эти деревья, я хочу сохранить их в базе данных. (а затем вытащить их в конце концов)

Наивный подход к представлению данных в базе данных - это реляционная база данных с двумя таблицами: узлами и ребрами. То есть таблица узлов будет иметь идентификатор узла, данные узла и т. Д. И таблица ребер будет отображением идентификатора узла в идентификатор узла.

Есть ли лучший подход? Или, учитывая (ограниченные) предположения, которые я даю, это лучший подход? Как насчет того, чтобы мы добавили предположение, что деревья относительно небольшие - лучше ли сохранить все дерево в виде капли в базе данных? Какой тип БД я должен использовать в этом случае? Прокомментируйте, пожалуйста, скорость / масштабируемость.

Спасибо

30
задан Bill Karwin 19 October 2011 в 15:50
поделиться