geração de relatório de um utilizador por vários atributos
-
18-09-2019 - |
Pergunta
tabela de usuário contém os seguintes atributos (dateOfBirth, raça, sexo, ...). Nós gostaríamos de gerar um relatório no seguinte formato.
Year Race All Male Female 2000 Asian 2000 1000 1000 2000 Hispanic 1000 500 500 2001 Asian 1500 700 800 2001 Hispanic 1300 400 900 ...Idealmente, eu gostaria de ver diferentes relatórios filtrados pelos parâmetros acima (por exemplo, todos os usuários masculino asiático no ano de 2000, todos os usuários asiáticos b / w anos 2000-2005, All comunidade hispânica em 2001). Qual seria a melhor maneira de buscar esses dados, como eu gostaria de evitar muitos hits para o banco de dados para construir esses dados. O quadro seria ideal na busca / representando esses dadosTotal 5800 2600 3200
Solução
Você não deu quaisquer detalhes sobre o back-end de banco de dados que será utilizado, mas, em geral, a forma mais eficiente para gerar esta informação será para processar a agregação de dados e filtragem no lado do banco de dados com o SQL e password correcta apenas o conjunto de resultados para o seu gerador de relatórios. Para o primeiro exemplo, o que parece ser uma agregação de todos os dados na tabela, o motor de banco de dados terá de classificar e processar todas as linhas, mas você vai ser melhor para fazê-lo lá em vez do cliente. Para consultas envolvendo subconjuntos de dados, certifique-se que você está indexado corretamente para suas consultas.
Outras dicas
Você pode ter um olhar para Jasper Reports:
http://www.docstoc.com/docs/2139263/Jasper -report-Tutorial
ou
http://www.javaworld.com /javaworld/jw-09-2002/jw-0920-opensourceprofile.html
É uma estrutura inteligente para gerar relatórios.