0

我从 API 中提取信息,信息以对象数组的形式呈现,我循环并提取我需要的信息,有时它涉及从多个对象中提取,例如我可能想从用户对象中提取用户名,然后从活动对象该用户工作了多少小时。

我用 php 编码,我可以显示信息,但我希望能够钻取和排序信息,所以我想创建一个 Mysql 临时表,插入所有值并以我喜欢的任何方式对它们进行排序。

那是最好的选择吗,这是一个时钟系统,所以我将是运行报告的主要系统,所以速度并不是真正的问题,其中一些查询很简单,有些更复杂,但只谈论 100-200 条记录一天,并且在大多数情况下,我只对 1-2 个月的数据运行查询,只有几千条记录。

我使用 SQL 的主要原因是轻松地按日期、从、之间、在类型之后排序。还有什么是处理删除临时表的最佳方法,我认为每隔几天删除一次就足够了。

还有一件事我不确定,假设我的大部分报告将在过去 60 天运行,默认情况下我应该基本上在过去 60 天运行报告,当有人在这 60 天内过滤它时,它会告诉我相关的来自临时表的数据,基本上一遍又一遍地重复使用这些信息。然后我可以输入一个 IF 语句,如果起始日期超过 60 天,我需要再次从 api 中提取所有信息并执行另一个新的临时表,或者我应该一直将所有数据加载到 mySQL 中并过滤为我想使用具有 1 个大型初始查询的同一张表?

FWIW 从 api 检索信息是最慢的部分,似乎是几秒钟的延迟,因此直接使用来自 SQL 的信息应该更顺畅。

我是 SQL 新手,所以我不确定最好的解决方案是什么,我可能会偏离我所采取的方法,所以我基本上是在寻找最有效的选项,以最大限度地减少编码并且对新手友好。我在 php 中编码 btw

4

1 回答 1

0

SQL 通常是一种很好的创建报告的语言。您是否总是可以从 API 中提取您需要的所有数据,即如果您运行过去两个月的报告,API 是否提供所有历史信息?如果没有,您将不得不定期检索数据并将其存储在数据库中。另一方面,如果您拥有所需的所有数据,PHP 也可以很好地过滤和排序数据,如果您省略数据库部分会容易得多。

于 2012-09-01T14:45:55.850 回答