генерация пользовательских отчетов по различным атрибутам

StackOverflow https://stackoverflow.com/questions/1873341

Вопрос

Таблица пользователей содержит следующие атрибуты (Дата рождения, раса, пол, ...).Мы хотели бы сгенерировать отчет в следующем формате.

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
...

Итого 5800 2600 3200

В идеале я хотел бы просматривать различные отчеты, отфильтрованные по вышеуказанным параметрам (напримерВсе азиатские пользователи мужского пола в 2000 году, Все азиатские пользователи ч /б 2000-2005 годов, Все испаноязычное сообщество в 2001 году).Каков был бы наилучший способ получить эти данные, так как я хотел бы избежать слишком большого количества обращений к базе данных для создания этих данных.Какая структура была бы идеальной для извлечения / представления этих данных

Это было полезно?

Решение

Вы не предоставили никаких подробностей о серверной части базы данных, которую вы будете использовать, но в целом наиболее эффективным способом генерации этой информации будет обработка агрегирования и фильтрации данных на стороне базы данных с помощью правильного SQL и передача только результирующего набора в ваш генератор отчетов.В первом примере, который, по-видимому, представляет собой совокупность всех данных в таблице, компонент database engine должен будет отсортировать и обработать все строки, но вам будет лучше делать это там, а не на клиенте.Для запросов, включающих подмножества данных, убедитесь, что вы правильно проиндексировали свои запросы.

Другие советы

Вы можете ознакомиться с отчетами Jasper:

http://www.docstoc.com/docs/2139263/Jasper-Report-Tutorial

или

http://www.javaworld.com/javaworld/jw-09-2002/jw-0920-opensourceprofile.html

Это интеллектуальная платформа для создания отчетов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top