ORM模块SELECT指定列与聚合函数设计.pdfVIP

  • 1
  • 0
  • 约1.2千字
  • 约 17页
  • 2026-11-08 发布于北京
  • 举报

ORM模块——SELECT列和聚合函数

大明

在SELECT语句中,我们可以指定列,严格

来说,可以指定:

•普通列

•聚合函数

•子查询

•……

也就是说,我们需要一个指定列的接口。

最简单的情况下,我们就让用户传入字符串。

逻辑很简单:

•没有指定列:那就是搜索全部列

•指定列:则只搜索指定的列

缺点:

•缺乏校验,手一抖写错了都发现不了

•用户直接写的是列名,而不是我们希望的字段名

我们定义一个新的标记接口,限定传入的类

型,这样我们就可以做各种校验。

这是一种严苛的设计方案,而不是宽容的设计

方案。基本假设用户就是会乱搞,所以我限定

住你,这样你就不会犯错,也不会写出来

BUG。

前面的极简设计,就是宽容的设计方案,意思

就是用户你随便搞,但凡管一下算我输。

在WHERE设计的时候我们也讨论过类似的问

题。

对应于这个抽象,我们就可以立刻想到的两个实

现:

•普通列

•聚合函数

恰好,我们在Predicate的时候设计了Column这

种结构体,现在可以复用了。

这里依旧要求用户使用字段名,而我们会把字段

名转化为列名。

你怎么支持这种呢?

它其实体现了我们系统设计的时候不处理的一个问

文档评论(0)

1亿VIP精品文档

相关文档