Я работаю в компании, которая управляет транспортными системами. В настоящее время нам нужно обрабатывать входящую информацию из файлов 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, у меня нет с ними опыта.