在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这样的框架来构建网站时,我都会将所有内容保存在同一个数据库中,因为我知道这个限制。现在我正在使用分布在许多不同数据库中的数据,除了命名空间之外没有明显的原因。
答案 0 :(得分:2)
可能值得看一下比ORM更低级别的东西吗?例如,C-JDBC行中的某些内容提供了一个“虚拟”数据库驱动程序,可以在后台与数据库集群进行通信。 (表可以跨服务器分发)
(我意识到你正在使用Python,所以这个特定的例子只有在你可以在JVM上运行Jython作为一个集成这种方式的平台时才有用 - 但我猜测类似的库可能更适合你的特定库的要求)