首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪一层应该转换对聚合表进行查询的时区?

哪一层应该转换对聚合表进行查询的时区?
EN

Software Engineering用户
提问于 2016-04-04 21:54:14
回答 1查看 236关注 0票数 2

我正在使用API运行Django应用程序服务,该API提供给javascript前端。数据是专门用于图表的,因此返回的数据是一个相当大的json,每次调用都是这样。

  • 前端指定了它们希望数据开始和结束的一些参数,包括时区。例如GET /pets?start_date=2015-01-01T05%3A00%3A00.000Z&end_date=2016-01-01T05%3A00%3A00.000Z?company_id=345&group_by=pet_type
  • 它正在获取的数据是聚合数据。为了提高性能,我们创建了存储这些聚合数据的表。例如,这些基本上是非规范化表,它们是星表
  • 我们在另一个表中细分了正在查询的性能日期,并在这些表上加入以查询特定的时间间隔。例如:
代码语言:javascript
运行
复制
 `actual_date   day   month   year   day_of_year   quarter     2015-04-10    10    4       2015   69            2     ....` 

所有的日期都存储在世界协调时。

我天真地认为前端会在UTC中请求,而服务可以返回UTC中的数据。然而,这是一个庞大的图形数据,每次调用,因此前端进行这一计算不是最优的。

问题是,如果前端请求特定时区中的数据,如何最好地返回特定于该时区的聚合数据?

EN

回答 1

Software Engineering用户

发布于 2016-04-04 22:20:51

数据库层当然不应该涉及-它应该是UTC和UTC,除非涉及时区有一些特殊的逻辑,而不是仅仅转换时间。

在理想的世界中,如果客户机想要在非UTC中显示数据,它应该在那里执行转换,因为这是一个更多的显示/呈现细节。

但是,如果由于某种原因,在客户机上计算是不可行的,那么只能在需要的范围内向上移动它--例如,如果您需要在服务器上进行计算,那么在控制器/请求处理程序级别这样做。

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/314742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档