【问题标题】:maintaining query-oriented applications [closed]维护面向查询的应用程序
【发布时间】:2011-01-28 01:17:21
【问题描述】:

我目前正在做某种报告系统。数字、表格、图表都是基于查询的结果。不知何故,我发现复杂的查询不容易维护,尤其是当有很多过滤时。这使得查询很长并且不容易理解。而且,有时会执行具有类似过滤器的查询,从而产生大量冗余代码,例如当我要在'2010-03-10'和'2010-03-15'之间选择一些东西并且位置是'US',客户组是“ZZ”时,我需要在每次查询时重写这些条件在这个范围内。 dbms(在我的例子中是 mysql)是否支持任何“范围/上下文”以使编码更易于维护以及速度更快?

另外,是否有设计此类应用程序的行业标准或最佳实践? 我想我正在做的事情叫做数据挖掘,对吧?

【问题讨论】:

    标签: sql mysql database data-mining


    【解决方案1】:
    1. 了解如何创建视图以消除查询中的冗余代码。 http://dev.mysql.com/doc/refman/5.0/en/create-view.html

    2. 不,这不是数据挖掘,而是普通的旧报告。有时称为“决策支持”。信息技术的面包和黄油。归根结底,玩旧报告是我们编写软件的原因。有人需要信息来做出决定并采取行动。

      数据挖掘更专业一点,因为关系还不容易定义。有人试图发现这些关系,以便他们可以编写适当的查询来利用他们找到的关系。

    【讨论】:

      【解决方案2】:

      如果您手动编写查询代码,您将无法制作出非常灵活的报告工具。每次需求发生变化时,您都会在繁琐的代码中竭力满足它 - 这就是疯狂。

      相反,您应该开始考虑查询基础架构之上的元层,并根据用户表达的标准生成 sql。您可以向他们提供一组选项,您可以从中生成查询。如果您稍微考虑一下使这些选择可扩展,那么您将在已经存在的许多 BI 和报告产品的道路上走得很好。

      您可能还想开始寻找已经这样做的基础架构,例如Crystal Reports(被Business Objects 吞并,被SAP 吞并)或Eclipse 的BIRT。根据您是在进行编程练习还是在解决用户的报告问题,您可能只想获取已经经过数万年开发的现成产品,例如上述产品之一,甚至Cognos(被 IBM 吞并)或 Hyperion(被 Oracle 吞)。

      祝你好运。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-14
        • 2010-12-10
        • 2011-02-20
        • 2011-11-13
        相关资源
        最近更新 更多