Я думаю об использовании этой STL-подобной древовидной библиотеки для C ++ http://tree.phi-sci.com/ хранить иерархические данные (думаю, организационная структура).
В моем случае дерево содержит только структуру, «полезная нагрузка» каждого узла хранится в другом месте. Так что это, вероятно, в конечном итоге tree<int>
или tree<simple_class_containing_a_couple_of_ints>
Я хотел бы найти лучший способ сохранить дерево. Чтобы быть более конкретным, я хотел бы найти лучший способ сохранить дерево в базе данных SQL, чтобы при загрузке его можно было загрузить обратно в приложение.
Итак, мой вопрос: как я могу сохранить дерево, содержащееся в контейнере tree.hh, в базе данных SQL?
Примечание. Нет необходимости хранить его в виде древовидной структуры в базе данных (то есть нет необходимости во вложенном множестве, списке смежности). Нет необходимости запрашивать базу данных, так как все дерево будет загружено в память.
ОБНОВИТЬ:
Я нашел этот класс в качестве альтернативы tree.hh здесь: http://stlplus.sourceforge.net/stlplus3/docs/ntree.html
Я пока не могу комментировать какие-либо различия в производительности, но он в основном реализует то, что мне нужно, и имеет класс постоянства (извините, нет ссылки, так как недостаточно репутации), который я могу выгрузить в BLOB. Я еще не ввел это как ответ, потому что я все еще заинтересован в любых альтернативных решениях.
Я бы сохранил каждый узел в одной таблице SQL (по одной строке на узел) и, возможно, каждый узел -> родственное отношение в другой таблице.
Я не уверен, что SQL — лучший способ сохраниться. Вы можете рассмотреть возможность использования JSON.
Других решений пока нет …