- 締切済み
XMLデータをRDBに格納する際のテーブル構造
データベース初心者です。 ちょっとしたWebアプリを作成しているのですが、以下のようなXML構造のデータを RDB(SQLサーバー2008)に登録する際のテーブル構成をどのようにすればよいか困っています。 本やインターネットで調べたのですが分からなかったので、もしわかる方がいましたら教えて下さい。 【xml構造】 ※登録されたWebサービスに送るパラメータ情報の定義 <xml> <name></name> <url></url> <a_params>? <param>* <value>| <id>| <date> </param> </a_params> <b_params>? <param>* <value>| <id>| <date> </param> </b_params> <c_params>? <param>* <value>| <id>| <date> </param> <c_params> </xml> 【タグの属性】 param : name value : なし id : length, prefix date : format 【タグ後ろの記号の意味】 ? 0回または1回必要 * 0回またはn回必要 記号なし 1回必要 単純に考えると、a_params | b_params | c_params毎にそれぞれvalue | id | dateの中間テーブルを 用意することになりそうですが、そうなると最低でも合計10個(1+3×3)のテーブルができてしまいます。 以下のように中間テーブル内で、どこのフィールドで使用されているか持たせば、テーブル数も 合計7個(1+3×2)となり、冗長なテーブルも減らすことができるかと思いましたが、 他によい方法はないでしょうか? 例:子要素Valueの場合 [Applicationテーブル] id name url [ApplicationValueテーブル] ←中間テーブル ApplicationID :Applicationテーブルのid FieldType :どこのフィールドで使用されているか(a_params or b_params or c_params) ValueID :Valueテーブルのid [Valueテーブル] id :PK value RDBでの実現が難しい場合は、SQLサーバのXML機能での実現方法も教えていただきたいです。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
SQLSERVERならXML型使えませんか http://handcraft.blogsite.org/ComponentGeek/ShowArticle/121.aspx