【问题标题】:Creating an archive - Save results or request them every time?创建存档 - 保存结果或每次都请求它们?
【发布时间】:2014-08-09 20:01:12
【问题描述】:

我正在开发一个项目,该项目允许用户输入带有参数的 SQL 查询,该 SQL 查询将在他们决定的一段时间内执行(比如每 2 小时一次,持续 6 个月),然后将结果返回给他们电子邮件地址。

他们会以 HTML 电子邮件消息的形式获取它,因此系统的基本工作就是运行查询,然后生成 HTML,然后将其发送给用户。

我还想保存这些结果,以便用户可以访问我们的网站并查看以前的结果。

我的问题是 - 我要保存哪些数据?

  1. 我是否使用这些参数保存 SQL 查询(即日期参数,以便他可以看到与该特定日期相关的结果)。这意味着当用户点击这个特定的结果时,我需要再次执行查询。

  2. 保存当时生成的 HTML,并在用户希望看到此结果时简单地显示它?

如果有人能解释每种解决方案的优缺点,以及哪个被认为是最好和最有效的,我将不胜感激。

存档可能有 1-2 个月的历史,我无法真正预测每个查询将返回的行数。

谢谢!

【问题讨论】:

    标签: python html database


    【解决方案1】:

    特别是关于从之前运行的查询中检索结果,我建议保存结果以便以后查看,而不是一次又一次地运行查询。这种方法的主要好处是:

    • 您可以节省不必要的计算工作来重新运行相同的查询;
    • 您保证结果集与原始报告相同。例如,如果您只保存 SQL,则查询的记录可能自上次运行查询以来已更改,或者可能已添加/删除记录。

    这种方法的缺点是它可能会使用更多的磁盘空间,但这不太可能成为问题,除非您有返回数百万行的查询(在这种情况下,html 可能不是一个好主意)。

    【讨论】:

    • 如果查询返回数百万行(它没有,只是出于好奇),那么使用 HTML 而不是 HTML 有什么好主意?
    • 这实际上取决于分析数据的人发现哪种格式最容易使用,但由于 HTML 旨在在 Web 浏览器中显示数据,因此这并不是一个非常有用的查看方式大型数据集。
    • 典型的方法是一些文本分隔格式,例如 .csv 文件或 xml 或 json。诸如 csv 之类的文本分隔文件将是最稀疏的,即每一行都没有字段名称,因此可能是最明智的,当数据是分层的并且无法在单个表中很好地表示时,xml 或 json 更有用。跨度>
    【解决方案2】:

    如果我要创建这种类型的应用程序,那么

    1. 我将有一些常见的查询,如获取当前日期、当前时间、日期范围、时间范围等,基于我的应用程序供用户轻松选择。

    2. 一些常用关键字的自动补全。

    3. 如果数据经常变化,保存html没有用,生成新的是不错的选择

    【讨论】:

      【解决方案3】:

      关键的区别在于,如果数据发生变化,新查询将返回与前一段时间保存的结果不同的结果,因此您必须决定用户是否应该获取最新数据或数据使用的快照是。

      如果相关数据没有改变,这取决于查询是否成本高昂、有多少用户会运行它们以及多久运行一次,那么您可以决定保存它们而不是重新运行查询,以提高性能。

      【讨论】:

        猜你喜欢
        • 2010-11-28
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 2019-01-19
        相关资源
        最近更新 更多