制作一个树的持久副本(C++)

Make a persistent copy of a tree (C++)

本文关键字:副本 C++ 一个      更新时间:2023-10-16

我正在考虑将这个类似STL的树库用于C++http://tree.phi-sci.com/存储分层数据(想想组织结构图)。

在我的情况下,树只包含结构,每个节点的"有效负载"都存储在其他地方。因此,它可能最终成为tree<int>tree<simple_class_containing_a_couple_of_ints>

我想找到最好的方法来坚持这棵树。更具体地说,我想找到将树持久化到SQL数据库的最佳方法,以便在启动时将其加载回应用程序。

所以我的问题是:如何将tree.hh容器中包含的树持久化为SQL数据库?

注意:不需要将其作为树结构存储在数据库中(即不需要嵌套集、邻接列表)。不需要查询数据库,因为整个树都将加载到内存中。

更新:

我发现这个类是树的替代品http://stlplus.sourceforge.net/stlplus3/docs/ntree.html我还不能评论任何性能差异,但它主要实现了我所需要的,并且有一个持久性类(抱歉,没有链接,因为没有足够的信誉),我可以将其转储到BLOB。我还没有输入这个答案,因为我仍然对任何替代解决方案感兴趣。

我会在一个SQL表中保留每个节点(每个节点一行),也许在另一个表中保留每一个节点->同级关系。我不确定SQL是否是最好的持久化方法。您可以考虑使用JSON。