用于多数据库查询的ORM解决方案

时间:2008-11-14 15:32:38

标签: mysql orm

在ORM中,您可以使用这样的语法:

my $results = Model.objects.all()[10];

在Django ORM中,它甚至可以通过ORM很好地处理外键关系和多对多关系。

但是,在MySQL中,您可以运行如下查询:

SELECT t1.column1
,      t2.column2
,      t3.column3
FROM   db1.table AS t1
,      db2.table AS t2
,      db3.table AS t3
WHERE  t1.id = t2.t1_id
AND    t1.id = t3.t1_id 
LIMIT  0,10

我正在寻找能够原生支持这些类型查询的ORM,但却无法真正看到任何有用的内容。

是否有任何现有的ORM可以做到这一点?或者有解决这个问题的替代策略吗?

每当我使用像django这样的框架来构建网站时,我都会将所有内容保存在同一个数据库中,因为我知道这个限制。现在我正在使用分布在许多不同数据库中的数据,除了命名空间之外没有明显的原因。

1 个答案:

答案 0 :(得分:2)

可能值得看一下比ORM更低级别的东西吗?例如,C-JDBC行中的某些内容提供了一个“虚拟”数据库驱动程序,可以在后台与数据库集群进行通信。 (表可以跨服务器分发)

(我意识到你正在使用Python,所以这个特定的例子只有在你可以在JVM上运行Jython作为一个集成这种方式的平台时才有用 - 但我猜测类似的库可能更适合你的特定库的要求)