目前我正在研究如何在C/C++中管理分层数据(来自XML)。我需要解析XML文件并将它们有效地存储在数据库中,因此我应该能够稍后查询数据库。对此的任何建议是最受欢迎的。在C/C++中管理分层数据
我碰到了Managing Hierarchical Data in MySQL。 这看起来不错,但仍然想知道是否有其他方法来做到这一点。
目前我正在研究如何在C/C++中管理分层数据(来自XML)。我需要解析XML文件并将它们有效地存储在数据库中,因此我应该能够稍后查询数据库。对此的任何建议是最受欢迎的。在C/C++中管理分层数据
我碰到了Managing Hierarchical Data in MySQL。 这看起来不错,但仍然想知道是否有其他方法来做到这一点。
如果您仔细阅读文档,您会发现有两种方式存储分层数据,一种使用“parent_ID”,另一种使用“left_sibling_ID”&“right_sibling_ID”。
我建议使用第一个:
myxmltable = {myxmltable_ID,myxmltable_parent_ID,myxmltable_otherfield_1,...}
此外,你可以你所有的物品,存储与键> 0,父键对于根项目可以是0,也就是说,它没有父项。我建议避免使用NULL,以便更容易处理您的D.B。并使用0代替。
XML存储的分层数据不符合SQL的关系方法。我强烈建议你看看XPath/XQuery,它们是直接在XML上操作的查询语言。 Qt包含一个我使用过的XQuery库,并且有很好的结果。
您是否考虑过使用现有的C++ XML解析器,如Xerces? –
嗨比利, Xerces是否提供任何MYSQL的特定功能?我正在寻找一种API,它还可以帮助我存储,检索和管理数据库中的数据。 谢谢 – keeda
@ user803969:不,但MySQL提供了一个API,而Xerces提供了一个API ......您不需要自己构建分层表示。这一切都说,被警告 - SQL HATES分层数据。 –