【发布时间】:2012-02-08 11:53:29
【问题描述】:
我正在处理的应用程序当前使用 MySQL 数据库。我们计划更改应用程序的架构以处理 XML 格式的数据。因此,应用程序的对象模型将由 XML 模式驱动。现在我们可以使用 JAXB 等工具进行 XML 解析并在内存中创建对象结构。 但是我看到的主要问题是:-
- 如何将对象结构映射到关系数据库中。我们可以在这里使用 Hibernate。
- 另一个问题是 XML 架构会定期更改,我们需要支持以前版本的架构。
我不确定处理第 2 项的最佳方法,因为随着架构版本数量的增加,数据库架构很容易开始变得臃肿,包含许多表。
所以我的主要问题是,从对象建模角度和数据库模式角度来看,管理此类版本更改的最佳策略是什么?
【问题讨论】:
-
是的。架构的变化是进化的,所以我们需要支持现有的流程。您认为我们应该使用基于 XML 或对象的数据库吗?
-
可能 - 或者可能像 Postgres 那样支持数据库模式定义中的继承。如果对模式的更改相对较小并且本质上主要是附加的,它可能会提供一些帮助。我不得不说我完全没有以这种方式使用 Postgres 的经验。
-
您没有具体说明实体将发生的各种变化。更改是关系更改还是只是新属性(列)?此外,XML 是从哪里来的?您是否从 Web 服务中读取它,因此对于不同版本的架构,您将拥有不同的 Web 服务?我之所以问,是因为 JAXB 需要一个关于它将用于将您的 XML 映射到的类的参考点。
-
我们既可以进行结构(关系)更改,也可以更改实体的属性。 XML 以 HTTP 消息的形式进入系统。我们将有一个消息解码器组件来解析 XML 消息并根据模式进行验证。需要支持多个版本的消息