Я пытаюсь решить проблему получения количества записей для различных пользовательских представлений для представления списка. Пользовательское представление - это представление, определенное пользователем, которое будет иметь некоторые добавленные критерии.
Пример:
All Records View(3): {criteria : none}
Name |email |age
John |john@foo.com| 23
Ann |ann@foo.com | 20
Jack |jack@foo.com| 13
Kids View(1): {criteria : age<15}
Name |email |age
Jack |jack@foo.com| 13
Foo Kids View(1): {criteria : age<15 and email contains('foo.com')}
Name |email |age
Jack |jack@foo.com| 13
Как указано в вышеприведенном примере, в зависимости от критериев необходимо рассчитать количество просмотров для каждого просмотра. Подсчет для каждого просмотра был показан еще до того, как пользователь выбрал конкретный вид.Есть несколько пользователей, которые просматривают / добавляют / обновляют / удаляют записи. Каждый раз запуск запроса MySQL для отображения счетчика для каждого представления может быть очень интенсивным и занимать много времени, поскольку могут быть миллионы строк. Я думал об использовании memcached илиredis для хранения начального количества записей представления и последующего обновления их при возникновении изменений. Проблема здесь заключается в том, как динамически выяснить, какие запросы для какого представления выполняются во время выполнения.
Пример: если запись 'Jacks'удаленный из любого количества просмотров должен быть вычтен во всех представлениях, аналогично, еслиего возраст обновляется до 20, после чего необходимо вычесть количество из представлений ребенка и ребенка.
Любые предложения о том, как решить проблему, приветствуются.