У меня есть веб-приложение, которое функционирует в качестве инструментальной панели, позволяющей пользователю просматривать сводки исторических данных для просмотра трендов и т. Д. В качестве дополнения к этому я хочу позволить пользователю углубляться в исторические данные, если они так желают.
То, что это будет означать, является таблицей пар время-значение, показывающей время, когда была записана конкретная точка данных, а также связанное с ней значение. Проблема заключается в том, что в записи может быть очень большой объем данных (миллионы точек вполне возможны), что означает, что не удастся загрузить все данные заранее и отобразить их пользователю.
Пока что моя лучшая идея - реализовать таблицу пар время-значение с «бесконечной прокруткой» - т.е. загружаются первые точки х, а затем по мере прокрутки пользователем выбираются следующие точки х и т. Д., Пока пользователь достигает конца данных (с кешем фиксированного размера точек, так что у меня не хватает памяти). Однако проблема этого подхода заключается в том, что нет способа добраться до конца данных без предварительной выборки каждой промежуточной точки.
Другим вариантом может быть навигационный интерфейс с кнопками «Вперед» и «Назад», а также средство выбора даты, чтобы пользователь мог быстро перейти к любой точке данных, которую он пожелает. Это решает проблему первой идеи, но этот интерфейс навигации гораздо более неуклюжий и менее интуитивный.
Мой вопрос: есть ли какая-то счастливая среда? Пользовательский интерфейс, в котором легко и удобно перемещаться по данным, но в то же время предусмотрен какой-то метод перехода к определенному моменту времени?
Изменения основаны на комментариях ниже:
Среда разработки гибкая, а база данных - SQL Anywhere, хотя внутренняя логистика для меня менее важна, чем чистый, функциональный интерфейс.
Я согласен, что просмотр исторических данных не самая полезная вещь. К сожалению, некоторые исторические данные не поддаются обобщению. Например, существуют строковые данные, где в момент времени t1 значение равно «foo», но в момент времени t2 значение равно «bar» - у меня нет хороших идей о том, как суммировать такие данные.