在C/C++中管理分层数据
Managing hierarchical data in C/C++
目前我正在研究在C/C++中管理分层数据(来自XML)。我需要解析XML文件并将其有效地存储在数据库中,这样我以后就可以查询数据库了。欢迎对此提出任何建议。
我偶然发现在MySQL中管理分层数据。这看起来不错,但仍然想知道是否有其他方法可以做到。
如果仔细阅读文档,您会发现有两种存储分层数据的方式,一种是使用"parent_ID",另一种使用"left_sbling_ID"&"right_sbling_ID"。
我建议使用第一个:
myxmltable={myxmltable_ID,myxmltable_parent_ID,myxmltable_otherfield_1,…}
此外,您可以存储所有项目,其中键>0。根项的父项可以是0,这意味着它没有父项。我建议避免使用NULL,以便更容易处理D.B.,而使用0。
XML存储分层数据,这与SQL的关系方法不太匹配。我强烈建议您查看XPath/XXQuerys,它们是直接对XML进行操作的查询语言。Qt包含一个XQuery库,我使用过这个库,结果很好。
相关文章:
- 当vector是tje全局变量时,c++中vector的内存管理
- 如何维护资源管理器项目视图中当前可见的项目列表
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 资源管理设计模式
- 使用"Task"函数指针队列定义作业管理器
- 实现动态插件管理器
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- libcurl 和 DNS ttl 中的内部连接管理
- 当分配一个字符串值并稍后通过分配另一个值进行更改时C++如何管理内存?
- 在C++管理一家中国.txt
- 编译器资源管理器和 GCC 具有不同的输出
- 我们可以通过 IPC 传递具有动态管理成员的类对象吗?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- Q没有管理权限的 exe 无法启动维护工具
- QT:管理来自 QNetworkReply 的回复
- 使用 std::vector<double> 访问由 std::unique_ptr<double[2] 管理的数据>
- 读取 TCP 标头并使用RAW_SOCKET管理 TCP 连接
- Windows 资源管理器中的图标在使用 resource.rc 时显示 2 个不同的图标
- 管理字符串文本的最佳做法
- 在C/C++中管理分层数据