Конструктор запрос

Jun 26, 2015

Здравствуйте.

Возникла потребность создать универсальный запрощик для пользователя (можно сказать фильтр) но такой что бы все запросы пользователь создавал сам.

Долго придумывал как это будет выглядеть и наконец то сплагиатил. В моем распоряжении есть узкоспециализированное ПО. Суть приложение сохранение неких объектов в БД и соответственно работа с ними. Так вот, это ПО имеет достаточно интересный конструктор запросов который в моем понимании идеален для моей задачи.

Конструктор состоит из 2х областей

  1. GUI интерфейс для создания запроса
  2. Текстовое представление запроса

Пользователь может формировать различные условия и выполнять набор операций ( = <> >= <= и т.д.).

Далее идет самое интересное. Установка атрибутов запроса

Атрибуты позволяют фильтровать Объекты по любому из полей которые имеют отношение к этому объекту.

Составленный запрос так же можно конвертировать в текст

Если попробовать приравнять до чего то более родного то выглядеть это должно так Фильтр для пользователей показать пользователя если он имеет доступ к ресурсу идентификатор которого больше 6 И поле 'value' ресурса не пустое И имя группы пользователя = 'member'

Вот примерно так. Теперь о том как же такое можно сделать.

На самом деле я сумбурно все это представляю.

  1. нужно сделать привязку к базовому классу в приложении он устанавливается для каждого ресурса явно и в моем случае я думаю это будет также… например через TV ресурса
  2. нужен словарь атрибутов… скорее всего это XML файл чем то схож на schema модели MODX
  3. парсер запроса для перевода его в текст
  4. и собственно создание/выполнение запросов используя getCollectionGraph

Хотелось бы услышать советы по поводу реализации, где что лучше использовать… Очень интересует как верно создать XML файл