在一个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,它可以支持这些类型的查询,但实际上看不到任何有用的东西。
有什么现有的orms可以做到这一点吗?或者有其他的策略来解决这个问题吗?
每当我使用像django这样的框架来构建一个站点时,我都会将所有内容保存在同一个数据库中,因为我知道这个限制。现在我正在处理分布在许多不同数据库中的数据,除了名称空间之外,没有其他明显的原因。
可能值得在一个比orm更低的层次上看一些东西?例如,一些 C-JDBC 提供一个“虚拟”数据库驱动程序,在后台与数据库群集对话。(表可以跨服务器分布)
(我知道您使用的是python,所以这个特定的示例只有在jvm上运行jython作为一个集成这种方式的平台时才有用——但是我猜类似的库可能更适合您的特定需求)