генерация пользовательских отчетов по различным атрибутам
-
18-09-2019 - |
Вопрос
Таблица пользователей содержит следующие атрибуты (Дата рождения, раса, пол, ...).Мы хотели бы сгенерировать отчет в следующем формате.
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 ...В идеале я хотел бы просматривать различные отчеты, отфильтрованные по вышеуказанным параметрам (напримерВсе азиатские пользователи мужского пола в 2000 году, Все азиатские пользователи ч /б 2000-2005 годов, Все испаноязычное сообщество в 2001 году).Каков был бы наилучший способ получить эти данные, так как я хотел бы избежать слишком большого количества обращений к базе данных для создания этих данных.Какая структура была бы идеальной для извлечения / представления этих данныхИтого 5800 2600 3200
Решение
Вы не предоставили никаких подробностей о серверной части базы данных, которую вы будете использовать, но в целом наиболее эффективным способом генерации этой информации будет обработка агрегирования и фильтрации данных на стороне базы данных с помощью правильного 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
Это интеллектуальная платформа для создания отчетов.