2015-04-09 3 views
-1

У меня есть XML-документ, который нужно сохранить в SQL db (Postgres). Я уже видел, как это делается, но у меня есть вопрос: я просто создаю отдельную таблицу с полем xml и размещаю там весь документ? Это документ о фильмах и т. Д. (Фильмы, актеры ...), в котором информация впоследствии будет получена.Хранение XML в Postgres

Я никогда не работал с XML в базах данных, поэтому я немного смущен.

Вот пример моего XML:

<?xml version="1.0" encoding="UTF-8"?> 
<cinema xmlns="movies" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="movies file:/C:/Users/Fabio/git/LAPD/movies.xsd"> 
<persons> 
    <person id="P1"> 
     <name>Samuel L. Jackson</name> 
     <birth>1948-12-21</birth> 
    </person> 
    <person id="P2"> 
     <name>Leonardo Di Caprio</name> 
     <birth>1974-11-11</birth> 
    </person> 
    <person id="P3"> 
     <name>Quentin Tarantino</name> 
     <birth>1963-03-27</birth> 
    </person> 
</persons> 
<movies> 
    <movie id="M1"> 
     <title>Pulp Fiction</title> 
     <length>154</length> 
     <year>1994</year> 
     <description>The lives of two mob hit men, 
      a boxer, a gangster's wife, and a pair 
      of diner bandits intertwine in four tales of violence and redemption</description> 
     <crew> 
      <director ref="P3"/> 
      <writer ref="P3"/> 
     </crew> 
     <cast> 
      <actor ref="P1"/> 
     </cast> 
     <rate> 
      <imdb>8.9</imdb> 
      <rottentomatoes>9</rottentomatoes> 
      <moviedb>7.8</moviedb> 
      <average>8.57</average> 
     </rate> 
     <numOscars>1</numOscars> 
    </movie> 
    <movie id="M2"> 
     <title>Django Unchained</title> 
     <length>165</length> 
     <year>2012</year> 
     <description>With the help of a German bounty hunter, 
      a freed slave sets out to rescue his wife 
      from a brutal Mississippi plantation owner.</description> 
     <crew> 
      <director ref="P3"/> 
      <writer ref="P3"/> 
     </crew> 
     <cast> 
      <actor ref="P1"/> 
      <actor ref="P2"/> 
     </cast> 
     <rate> 
      <imdb>8.5</imdb> 
      <rottentomatoes>8</rottentomatoes> 
      <moviedb>7.4</moviedb> 
      <average>7.97</average> 
     </rate> 
     <numOscars>2</numOscars> 
    </movie> 
</movies> 

ответ

1

Вы можете сохранить весь документ XML в качестве значения в одном xml колонке или вы можете извлечь данные и хранить их в более или менее normalized form ,

Что лучше, зависит от всех деталей вашего приложения, которые нам неизвестны.

Вот родственный ответ обсуждать плюсы и минусы хранения типов документов против дб нормализации:

+0

я вижу. Я добавил экземпляр. Как вы можете видеть, это более или менее простая структура, но некоторые элементы передаются другими, поэтому я не знаю, могу ли я их разделить ... – Fabio

+0

@Fabio: окончательного ответа нет. Вам нужно будет решить, к какому пути идти, основываясь на полной картине вашего приложения. Я добавил ссылку на соответствующий ответ. –

+0

Спасибо, я проверю – Fabio

Смежные вопросы