Ruby 那种表名是业务 +日期的表你们会用 AR 去查询吗?

kayakjiang · 2020年01月04日 · 最后由 mizuhashi 回复于 2020年01月05日 · 4369 次阅读

我以前做的项目里有大量的这样的表 a_20120101, a_20120102, a_20120103, 简单来说表名就是 业务名_日期, 比如有统计用户佣金的表,统计用户等级的表,统计用户销售额的表等等,这些表加起来不下千个,这些表里的记录通过 user_id 和 users 表关联,这里不讨论这样的设计有没有问题,这已经是一个客观事实没办法改变了,现在的问题就是让大家实现这么一个功能:输入开始日期,结束日期,输入用户 id, 查询出这个用户在日期范围内所有的 a_ 相关的数据。我们当时解决这个问题的方法就是手写拼 sql, 确实有点痛苦,我后来实现过一个 sql builder 叫 sqlknit https://github.com/baya/sqlknit 去实现拼 sql 的功能,弄完以后发现还不如手写 sql. 你们会怎么做?最好给出代码。

相关的话题是这个,https://ruby-china.org/topics/39399

可以把要统计的结果提前算出来存到另一个表里。这很像数据仓库里的 ETL 了

Rei 回复

直接用 from 就行

需要 登录 后方可回复, 如果你还没有账号请 注册新账号