目前我正在研究如何在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分層數據。 –