【问题标题】:user report generation by various attributes通过各种属性生成用户报告
【发布时间】:2009-12-09 11:39:06
【问题描述】:

User 表包含以下属性(dateOfBirth、race、gender ...)。我们希望生成以下格式的报告。

年份 种族 所有 男性 女性 2000 亚洲 2000 1000 1000 2000 西班牙裔 1000 500 500 2001 亚洲 1500 700 800 2001 西班牙裔 1300 400 900 ...

总计 5800 2600 3200

理想情况下,我想查看按上述参数过滤的不同报告(例如,2000 年的所有亚洲男性用户,2000-2005 年的所有亚洲用户,2001 年的所有西班牙裔社区)。获取这些数据的最佳方法是什么,因为我想避免对数据库造成太多的访问来构建这些数据。什么框架最适合获取/表示这些数据

【问题讨论】:

  • 我想了解一些关于数据生成的细节。构建此数据需要对数据库进行多少次查询。上述案例中的每一行至少需要 2 个查询 [a] 来获取一年中所有男性的列表(变量参数是年份、种族)所以如果这个列表很大,那么检索这些数据的最佳方法是什么以优化的方式。上面的例子只包含一个最小的数据集,我想在一行中添加许多这样的参数,这会增加每行需要触发的查询。是否有更好的解决方案来获取此视图

标签: database-design reporting jasper-reports birt


【解决方案1】:

【讨论】:

  • 感谢您的回复,就报告生成而言,我可以选择使用 Jasper Reports。如果变量参数的数量很大,我已经添加了有关在每一行中构造数据的优化机制的更多信息。
【解决方案2】:

您没有提供有关您将使用的数据库后端的任何详细信息,但通常生成此信息的最有效方法是使用正确的 SQL 在数据库端处理数据聚合和过滤并通过只有结果集到您的报告生成器。对于第一个示例,它似乎是表中所有数据的聚合,数据库引擎将必须对所有行进行排序和处理,但最好在客户端而不是在客户端进行。对于涉及数据子集的查询,请确保为您的查询正确编入索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多