2017-03-11 180 views
1

我有具有多个子级别的XML文件。将数据存储到数据库中的最佳方法是什么?为节点创建不同的表并保存具有关系或数据的数据?如果我们有50个不同的节点该怎么办?将XML数据存储到数据库中的最佳方法

类似XML

<storage> 
    <product description="Cardigan Sweater" product_image="cardigan.jpg"> 
     <storage_item gender="Men's"> 
     <item_number>QWZ5671</item_number> 
     <price>39.95</price> 
     <size description="Medium"> 
      <color image="red_cardigan.jpg">Red</color> 
      <color image="burgundy_cardigan.jpg">Burgundy</color> 
     </size> 
     <size description="Large"> 
      <color image="red_cardigan.jpg">Red</color> 
      <color image="burgundy_cardigan.jpg">Burgundy</color> 
     </size> 
     </storage_item> 
     <storage_item gender="Women's"> 
     <item_number>RRX9856</item_number> 
     <price>42.50</price> 
     <size description="Small"> 
      <color image="red_cardigan.jpg">Red</color> 
      <color image="navy_cardigan.jpg">Navy</color> 
      <color image="burgundy_cardigan.jpg">Burgundy</color> 
     </size> 
     <size description="Medium"> 
      <color image="red_cardigan.jpg">Red</color> 
      <color image="navy_cardigan.jpg">Navy</color> 
      <color image="burgundy_cardigan.jpg">Burgundy</color> 
      <color image="black_cardigan.jpg">Black</color> 
     </size> 
     <size description="Large"> 
      <color image="navy_cardigan.jpg">Navy</color> 
      <color image="black_cardigan.jpg">Black</color> 
     </size> 
     <size description="Extra Large"> 
      <color image="burgundy_cardigan.jpg">Burgundy</color> 
      <color image="black_cardigan.jpg">Black</color> 
     </size> 
     </storage_item> 
    </product> 
</storage> 
+1

取决于你想用它做什么。如果你只是想存储它并按原样返回,请使用blob。如果您想实际处理数据,例如查找物品的平均价格,请将其分解并根据需要创建不同的表格。 – Robert

回答

0

您可以将这个XML到JSON格式,并将其保存在一个数据库中的NoSQL MongoDB的一样。

更新:如果您需要将其保存到SQL数据库中,我认为您需要使用JAXB或XMLBeans转换为java对象,然后使用JDBC或JPA将其保存到数据库中。 (Tristan):在第二种解决方案中,您也可以选择XML的哪一部分实际上需要SQL DB中的精确数据,另一部分则可以将它存储在CLOB字段中。

+0

我知道,但我用关系db(mySQL) – Adnan

+0

然后读第二句;) – Tristan

+0

对不起,我刚刚在他的评论后加了第二句。 – alayor

0

最好的方法是把它粘在你的SQL数据库中。你可以很容易地通过SQLizer运行它,它将为convert XML to SQL提供表格定义和多个INSERT语句。

这也会让你选择XML文件的特定部分进行转换。

相关问题