代码之家  ›  专栏  ›  技术社区  ›  David McLaughlin

面向多数据库查询的orm解决方案

  •  0
  • David McLaughlin  · 技术社区  · 15 年前

    在一个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这样的框架来构建一个站点时,我都会将所有内容保存在同一个数据库中,因为我知道这个限制。现在我正在处理分布在许多不同数据库中的数据,除了名称空间之外,没有其他明显的原因。

    1 回复  |  直到 15 年前
        1
  •  2
  •   alasdairg    15 年前

    可能值得在一个比orm更低的层次上看一些东西?例如,一些 C-JDBC 提供一个“虚拟”数据库驱动程序,在后台与数据库群集对话。(表可以跨服务器分布)

    (我知道您使用的是python,所以这个特定的示例只有在jvm上运行jython作为一个集成这种方式的平台时才有用——但是我猜类似的库可能更适合您的特定需求)