在我目前的项目(从头开始构建订单管理系统)中,我们以XML对象的形式处理订单,这些订单保存在关系数据库中。
我会概述这样的要求:
我们做了什么:
customer
,address
,phone_number
,order_position
等表格。我们面临的问题:
性能不是真正的问题(因为它是一个离线系统,订单经常被故意延迟几天。
我不希望在这里获得免费咨询,但我对如何改进这种方法感到有些困惑(下次,基本上)。
您认为处理这些要求的好方法是什么? 使用对象图,像JXPath和OGNL以及OR映射器是一种更好的方法吗?或使用例如XML支持Oracle数据库?
答案 0 :(得分:1)
标准Java EE方法是将您的数据表示为POJO,并使用JPA进行数据库访问,使用JAXB将对象转换为XML或从XML转换。
<强> JPA 强>
<强> JAXB 强>
示例强>
答案 1 :(得分:1)
如果您的架构经常更改,我建议不要使用任何类型的对象映射。你不断改变样板代码只是为了它。
而是使用声明性架构定义来验证数据更改和访问。 将订单视为单个数据,表示为XML文档。 使用面向文档的存储(如MongoDB,Cassandra或许多XML数据库之一)直接操作文档。不要费心将它切成片以将其存储在关系数据库中。
通过关系数据库中的报告工具访问数据可能被视为次要数据。例如,MongoDB上的简单map-reduce作业可以在需要时将所需的订单详细信息填充到关系数据库中,从而很自然地将两个用例分开。