Как обрабатывать файлы XML, использовать базу данных XML или просто вписать данные в схему в реляционной базе данных - PullRequest
0 голосов
/ 08 ноября 2019

Я работаю в компании, которая управляет транспортными системами. В настоящее время нам нужно обрабатывать входящую информацию из файлов XML. Это структурированные XML, в основном они имеют тело, которое называется <messageEvent> и представляет собой список событий.

В зависимости от события каждое из них имеет разные поля, которые могут быть вложенными объектами.

<eventMessage>
  <Event_header>...</Event_header>
  <E_product_use>
    <serial> 1 </serial>
    ...
  </E_product_use>
</eventMessage>

Что мы делаем, это обрабатываем входной файл XML в реляционную базу данных (Postgresql). Но я не знаю, является ли это лучшей идеей, в конце мы просто просматриваем информацию о xmls, как, например, показать все сериалы в файлах или посчитать все события определенного типа в диапазоне дат.

Модель реляционной базы данных выглядит немного грязной, поскольку каждый тип объекта в xml представляет собой таблицу. Например, у нас есть таблица с именем eventMessage, в которой есть только внешние ключи для разных таблиц, представляющих тип события, но, поскольку eventMessage имеет только один тип события, в конце в столбцах есть набор пустых значенийи одно значение в столбце, соответствующее типу события.

Я не специалист по проектированию баз данных, но чувствую, что дизайн не верный. Кроме того, мы должны сделать много объединений, чтобы найти информацию.

Я не знаю, будет ли лучше использовать базу данных XML, у меня нет с ними опыта.

...