Mysql 可维护性的抽象连接?

Mysql 可维护性的抽象连接?,mysql,orm,join,Mysql,Orm,Join,有人知道可以抽象连接的ORM吗?我正在使用PHP,但我会从任何地方获取想法。我使用过ORM,但我不确定它是否支持这个概念 我希望能够指定一个实际上是复杂查询的关系,然后在其他查询中使用该关系。这主要是为了可维护性,所以我没有太多的复制代码,如果我的模式发生变化,这些代码就必须改变。这在理论上是否可能(至少对于“复杂查询”的某些子集而言) 下面是我所说的一个例子: ORM.defineRelationship('Message->Unresponded', ' LEFT JOIN Mes

有人知道可以抽象连接的ORM吗?我正在使用PHP,但我会从任何地方获取想法。我使用过ORM,但我不确定它是否支持这个概念

我希望能够指定一个实际上是复杂查询的关系,然后在其他查询中使用该关系。这主要是为了可维护性,所以我没有太多的复制代码,如果我的模式发生变化,这些代码就必须改变。这在理论上是否可能(至少对于“复杂查询”的某些子集而言)

下面是我所说的一个例子:

ORM.defineRelationship('Message->Unresponded', '
  LEFT JOIN Message_Response
    ON Message.id = Message_Response.Message_id
  LEFT JOIN Message AS Response
    ON Message_Response.Response_id = Response.id
  WHERE Response.id IS NULL
');

ORM.query('
  SELECT * FROM Message
  SUPER_JOIN Unresponded
');

对不起,这纯粹是虚构的语法。我不知道是否存在类似的情况。如果这样做,肯定会很复杂。

一种可能是将此连接作为数据库中的视图编写。然后可以在视图上使用任何查询工具

Microsofts实体框架还支持代码实体和数据库表之间非常复杂的映射,甚至跨数据库。您作为示例给出的查询在从表连接到实体的映射方面很容易得到支持。然后,您可以使用LINQ对生成的连接数据执行进一步的查询。当然,如果您使用的是PHP,那么这对您来说可能没有多大用处

但是,我不知道有哪种产品会像您所展示的那样将连接封装到进一步查询的语法中