• 締切済み

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機能での実現方法も教えていただきたいです。 よろしくお願いします。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1