我在一家管理运输系统的公司里工作。当前,我们需要处理来自XML文件的传入信息。这些是结构化的XML,基本上它们具有一个称为<messageEvent>
的主体,并且是事件列表。
根据事件,它们每个都有不同的字段,这些字段可以是嵌套对象。
<eventMessage>
<Event_header>...</Event_header>
<E_product_use>
<serial> 1 </serial>
...
</E_product_use>
</eventMessage>
我们要做的是将输入的XML文件处理到关系数据库(Postgresql)中。但是我不知道这是否是最好的主意,最后,我们只是在查询xml的信息,例如显示文件中的所有序列号或计算日期范围内某种类型的所有事件。
关系数据库的模型似乎有点混乱,因为xml中的每个对象类型都是一个表。例如,我们有一个名为eventMessage
的表,该表只有指向表示事件类型的不同表的外键,但是由于eventMessage
仅具有一种事件类型,因此最后是一堆null列中的值和列中的一个值对应于事件类型。
我不是数据库设计专家,但是我认为设计不正确。此外,我们还必须进行大量的联接才能查找信息。
我不知道XML数据库是否是一个更好的主意,我没有使用它们的经验。