设计用于多输入/多输出的系统

时间:2010-01-07 20:30:40

标签: design-patterns orm etl data-conversion

背景

我正在草拟一个需要执行此类操作的应用程序

database a >--|                          |--> fileformat 1
database b >--+--> custom application >--+--> fileformat 2
...           |                          |    ...
database n >--|                          |--> fileformat n

所讨论的数据库都是相同的类型,但具有不同的表和结构。要加载的对象都是某种类型的产品。文件具有相似的结构,但不一定相同,有些是xml,有些是csv等。

自定义应用程序用于确保操作从关系数据中检索的对象的一致界面。它是一个简单的Web应用程序,每个产品都有一些选项,并且产品的分页显示。它为通过ORM保留的每条记录添加了额外的数据。

每个应用程序实例中只有一个数据库处于活动状态,但是许多文件格式都可以处于活动状态。这些文件的写入是同步的。

问题

我一直在努力寻找设计转换步骤的最佳方法。

是否有某种模式能够以某种方式将不同的模式组合到一个模型中?这里假设只有所有数据库中存在的字段才会在模型中结束。

那反过来呢?何时将产品对象写入文件?

我看过不同的模式,例如策略模式,但我仍然没有那个时刻所有的点点滴滴似乎都落实到位。

对于它的价值,应用程序本身最有可能用PHP编写。

1 个答案:

答案 0 :(得分:2)

这将是我的方法:

每个数据库都有一个视图,可以向您的应用提供所需的数据。

您的应用会有一个层,可以读取数据并将其重新制作成(相当标准的)数据结构。

然后你会有一个层来读取那些标准数据结构并写出所请求的文件。