我有一个xml文件,我想把它的内容存储在DB中。我的xml的格式不是固定的100% 我有xml文件,如下所示
<Jb>
<T1>false</T1>
<T2>
<email>dshetyo@adobe.com</email>
<userName>passwd</clusterName>
<passwd>adobe</clusterURL>
<url>dummy</url>
<param1>val </paramY>
<paramN> val </paramN>
</t2>
<fx>
<a >351108</a>
<b >4629 <b>
</fx >
</Jb>
我可以有N个参数,例如param1,param2等(N未修复)如何将其映射到相关表结构? 还有其他方法吗?
答案 0 :(得分:2)
这是一对多关系。你会想要一个像这样的表:
account
id
email
usernmae
parameters
account_id
param_key
param_value
然后你的SQL看起来大致如下:
select * from account, parameters where account.id = parameters.account_id
或者,您也可以使用单个列来存储所有键值对。您可以将此作为长字符串或clob(取决于您认为更适合的性能以及您在尺寸方面的需求)
(所以需要额外的解析,但是如果你不想通过SQL选择参数,那么这就是你要去的方法)
答案 1 :(得分:0)
通常,XML内容存储在单个TEXT
或VARCHAR
列的数据库中。
由于其自由形式结构,它通常不适合O / R映射。
答案 2 :(得分:0)
答案 3 :(得分:0)
Oracle拥有XMLDB,它们是基于XML进行搜索的XPath函数的实现。这意味着您可以将列定义为XMLType数据类型,并将模式附加/映射到此(这有助于验证以及随着时间的推移演变XML)。
MySQL中的XML: http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html
MySQL似乎支持XPath函数,如前所述: http://dev.mysql.com/doc/refman/5.6/en/xml-functions.html
但请注意,MySQL中仍在开发这些功能。