XML到SQL的转换
我知道这不是一个非常直接的问题,但是如何设计一个SQL数据库来存储来自XML文件的数据?(您没有XML模式,只是一个纯XML,包含许多不同的标记名,属性和嵌套元素)。
这比技术更概念化。 我们如何从分层数据模型(XML)转向关系模型(SQL)。
如果你没有模式,并且想要使用传统的RDBMS,传统的关系方式,那么你基本上已经搞错了。
但是您可以在所有主要数据库系统中使用XML数据类型(在Oracle(> 9i),MS SQL(> 2005),Postgres,DB2中)。 这使您可以使用XPath表达式来处理XML内容,这非常简洁。
还推荐阅读:
或者,您可以跳过将您的层次模型转换为关系型,因为这似乎是Cassandra或MongoDB等NoSQL数据库的完美用例。
(最初发表评论,但我认为这可能值得成为一个答案...)
那么,问题是什么? 将树表示为关系很简单。
NODE ( id, tag-name, text )
ATTR ( id, attr-name, attr-value )
NODEATRR ( node-id, attr-id )
NODENODE ( node-id, child-node-id )
我希望,关系之间的关键和联系是显而易见的。 这很丑陋,字符串型,当然,但如果你想存储任意的XML,那就是你所得到的。
SQL中有一些巧妙的树编码方案。 再次,即使巧妙的树编码也不如设计合理的数据库模式。
链接地址: http://www.djcxy.com/p/11387.html