現在、私はC/C++で階層データ(XMLから)を管理する方法を研究しています。 XMLファイルを解析してDBに格納する必要があるので、後でDBに問い合わせることができます。これに関する提案は大歓迎です。C/C++で階層データを管理する
私はManaging Hierarchical Data in MySQLに遭遇しました。 これはうまく見えますが、それを行う他の方法があるかどうか不思議です。
現在、私はC/C++で階層データ(XMLから)を管理する方法を研究しています。 XMLファイルを解析してDBに格納する必要があるので、後でDBに問い合わせることができます。これに関する提案は大歓迎です。C/C++で階層データを管理する
私はManaging Hierarchical Data in MySQLに遭遇しました。 これはうまく見えますが、それを行う他の方法があるかどうか不思議です。
このドキュメントをよく読んだ場合、階層データが格納されている2つの方法があります.1つは「parent_ID」を使用し、もう1つは「left_sibling_ID」&「right_sibling_ID」を使用します。
私は最初のものを使用することをお勧め:
myxmltable = {myxmltable_ID、myxmltable_parent_ID、myxmltable_otherfield_1、...}
また、あなたは> 0の親キーのキーで、すべてのアイテムを保存することができルート項目は0である可能性があります。つまり、親はありません。あなたのD.B.をより扱いやすくするために、NULLを使わないでください。代わりに0を使用します。
XMLには、階層的なデータが格納されていますが、これはSQLのリレーショナルアプローチには適していません。 XMLで直接動作するクエリ言語であるXPath/XQueryを見てみることを強くお勧めします。 Qtには良い結果を得たXQueryライブラリが含まれています。
Xercesなどの既存のC++ XMLパーサーを使用することを検討しましたか? –
こんにちはBilly、 XercesはMYSQL特有の機能を提供していますか?私は、データベースのデータの格納、検索、および管理に役立つAPIも探しています。 ありがとう – keeda
@ user803969:いいえ、MySQLはAPIを提供していますが、XercesはAPIを提供しています...自分で階層表現を作成する必要はありません。 SQLは階層的なデータを嫌う。 –