标题告诉所有人。
假设我有一个单独的类,它在某些DSL中用作查询处理器。也就是说,我在某些DSL中提供了一些查询,然后运行此查询。
此查询处理器将与我使用的任何数据库连接器库进行通信,并提取符合条件的记录的仅ID 。
这就是说“ID”的“集合”将被提供给将在数据库上执行实际ORM的类,并从具有此ID的记录构造域对象。
这样我就不需要将查询解析功能包含在我的ORM机制中了,它只有一个完全愚蠢的方法来获取其ID的记录。
作为补充,让我们假设我可以想象所有类型的缓存,从网页缓存到DBMS查询缓存。
与传统构建(SQL或可能是MongoDB样式)查询并直接在数据库上运行相比,此方案的性能是否会非常糟糕?
我已经明白,所有这些都需要每次获取操作两次查询,而不是一次。我的问题是差异的大小。
我的总体目标是将界面分开,以便从这些查询获得的实际对象的界面进行查询。例如,Yii的CActiveRecord
失败了,是三个不同职责合并在一起的组合。