0

这是这个问题服务器端SQL库的php版本

是否有可以将 sql 分解为完全服务器端逻辑的库?

作为一个例子,考虑这个基本查询SELECT table1column1, table2column1 FROM table1, table2 WHERE table1.id = 1 AND table2.table1id = table1.id;,它比将两者SELECT分解成 2 SELECTsSELECT慢约 5 倍PRIMARY,假设table2.table1id不是PRIMARY.

我想要一个库,在这种情况下,它就是这样做的,将单个查询分成两个。它不必解析 sql 来理解一个人想要什么,而最好采用这种格式basicJoin($table1columnsList, $table2columnsList, $table1name, $table2name, $table1id, $table2table1idColumnName)

这个函数将

  1. SELECTtable1基于$table1id( PRIMARY)指定到数组中的列
  2. SELECT所有table2id ( table2's PRIMARY) 和table1ids 放入一个数组并找到正确的table2id
  3. table2上面的 id 用于指定到数组(或数组中)SELECT的列table2table1

在 php 中处理我的逻辑只大大减少了处理延迟和处理延迟峰值,但是写出所有这些逻辑很乏味。

它已经存在了吗?如果有,在哪里?

提前谢谢了!

4

1 回答 1

1

如果您喜欢 OOP,那么 Propel - http://propelorm.org/它会处理所有逻辑并为您提供类似joinWith()getThis()、、、setThat()等方法save()

看来 Propel 确实将查询分开,以便它可以提供可以单独保存的多个对象。

于 2013-02-10T19:45:30.333 回答