在C / C ++中管理分层数据

时间:2011-06-17 21:32:04

标签: c++ c xml database data-structures

目前我正在研究如何在C / C ++中管理分层数据(来自XML)。我需要解析XML文件并将它们有效地存储在数据库中,所以我应该可以稍后查询数据库。对此有任何建议都是最受欢迎的。

我遇到了Managing Hierarchical Data in MySQL。 这看起来不错,但仍然想知道是否还有其他方法可以做到。

2 个答案:

答案 0 :(得分:0)

如果您仔细阅读该文档,您会发现有两种方式存储分层数据,一种使用“parent_ID”,另一种使用“left_sibling_ID”& “right_sibling_ID”。

我建议使用第一个:

myxmltable = {myxmltable_ID,myxmltable_parent_ID,myxmltable_otherfield_1,...}

此外,您可以使用键>存储所有商品。 0.根项的父键可以是0,表示它没有父项。我建议避免使用NULL,以便更容易处理你的D.B.而是使用0代替。

答案 1 :(得分:0)

XML存储的分层数据与SQL的关系方法不相符。我强烈建议您查看XPath / XQuery,它们是直接在XML上运行的查询语言。 Qt包含一个我用过的XQuery库,效果很好。