我从多个内容投放系统中获取了大量grep -oE '^[A-Z]+-[0-9]+' /tmp/jira.txt | sort -u
文件。它们彼此无关。
目前我将每个xml解析为xml
个对象(java
),并将它们保存在@Entity
db中。
问题:当用户想要访问存储的数据时,将从db行重新组合对象。根元素始终由唯一ID标识,并且包含的数据从不同的行连接。
所以一般来说,我重复这个过程:read xml>分解为java对象>在不同的表中存储在db中> (用户访问)>从db获取并加入表行>撰写java对象>通过REST或SOAP提供给用户界面。
始终从根目录访问内容。例如,按产品ID访问产品。所有子内容,如描述,股票,价格等,永远不会直接访问,但始终只能由根产品访问。
问题:在单独的密钥下以某种方式存储xml postgres
会更容易,然后用户访问内容,然后才开始读取xml并以自定义格式提供给用户?
如果是:我如何存储内容?当然,它可能不适合在postgres db中将xml文件保存为documents
,但更好的是什么?
更新
blobs
当然,真正的xml文件要复杂得多,因此数据将分发到许多表和行。我现在正在寻找一种方法,我不必分发完整的xml内容,因此有几个表(这里有一个根条目转到表<foo>
<bars>
<bar><id>1</id><content>Hello</content></bar>
<bar><id>2</id><content>Hello2</content></bar>
<bars>
</foo>
@Entity
public class Foo {
@Id //auto generated
private long id;
@OneToMany
private List<Bar> bars;
}
@Entity
public class Bar {
private int id;
private String concent;
}
,两个条目转到表{{1} }})。因为当我根据用户请求获取内容时,我会使用foo
的唯一ID并加入任何内容(此处仅为bar
)内容。
如果没有父元素,则永远不会访问foo
内容(以及任何其他子内容)。因此,可能有更好的方法来存储这些类型的数据,因为始终可以自上而下访问完整数据并始终重新加入。