Расширенная фильтрация моделей

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
undestroyer
Сообщения: 120
Зарегистрирован: 2014.01.06, 13:46

Расширенная фильтрация моделей

Сообщение undestroyer »

Добрый день, давайте поговорим о фильтрации данных:)

Если мы работаем с одной моделью, в рамках которой можно выделить относительно немного значимых полей, то отфильтровать контент обычно не сложно. Размещаем форму с нужными полями и фильтруем. Обычно выглядит примерно так:

Изображение

Но если работа проходит сразу в рамках множества связанных моделей и общее количество значимых полей уже не позволяет выводить все в одной форме, то приходится извращаться. Хорошее решение у Яндекс.Метрики. Масса полей, масса возможностей для фильтрации, занимает минимум места и при этом достаточно легко пользоватся

Изображение

Метрика очень удобно это записывает в URL запроса. URL содержит информацию о фильтрации (декодировал и отформатировал):
filter=
(ym:s:trafficSource=='ad')
and
(ym:s:goal20267210IsReached=='Yes')
and
((ym:s:regionCountry=='225'))
and
(ym:s:userVisits==1)
Похоже что это какой-то язык запроса, который разбирается сервером и отправляется куда-то вроде СУБД.

Вопрос: кто-нибудь делал подобное? Расскажите как делали фронтенд, бэкенд? Как структурировали запросы? Как их парсили?
Ответить