2011-04-15 127 views
0

在doctrine2中处理不同基础但具有相同模式的最佳方式是什么?目前,我具有相同结构的多个数据库

  1. 单独生成实体每个数据库,加入数据库的名称空间和名称的每一个元数据对象,把他们在不同的命名空间(XXX \基地\ entityClass)方法,但具有相同的别名
  2. 创建一个每个碱基(即使它们共享相同的连接)
  3. 创建其传递到多个EntityManagers电话和收集反应
  4. 合并响应一个输出代理的EntityManager

在doctrine2中是否有更简单的方法处理多个基地?

回答

0

我无法回答doctrine2,但我在C#中这样做。

  1. 一组实体,具有强名称和强类型,根据应用程序的其他部分需要定义。这映射模式,但不绑定到任何一个数据库。
  2. 一个外观,知道您当前正在使用哪个数据库,并将请求指向两个中的一个...
  3. 单独的数据访问命名空间,处理一组通用操作,并将结果填充到单个通过外观返回给请求者的一组实体。
  4. 基于从数据库目录中读取scema的静态代码生成器很有用。如果你可以推断你需要了解的其他数据库的一切,你可能希望选择一个作为模型。
  5. 对于插入,更新,where子句等,动态代码生成器也很有用。
  6. 在框架中花费一些时间来支持所有这些。决定是否需要在运行时保留元数据,以及它是否主要支持查询或更改操作。提供一种通用方法,用于从任一数据库的结果集中提取数据,以便您可以将强命名和键入的结果集返回给应用程序,而不考虑底层数据库。
相关问题