Существует ли стандартный способ отправки параметров динамического поиска для SQL-запроса со стороны клиента (форма HTML)?

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

Обычно, когда я отправлял критерии поиска со стороны клиента, это были просто предопределенные данные. Например, получить элемент по идентификатору или получить элементы с отметкой времени, превышающей заданное время. Эти параметры могут быть легко добавлены в подготовленное заявление. Однако теперь мне нужно позволить пользователю выбрать, какие параметры поиска он когда-либо желает, для поиска в одной таблице. Существует множество способов поиска данных. Вот несколько примеров, которые я могу придумать:

  • число, строка, дата и т. д. равны. Конкретные идентификаторы, регистрации и т. Д.
  • число, дата строки и т. д. в диапазоне от х до у. Поиск людей в возрастной группе или бронирование на определенный период.
  • номер, строка, дата в списках. Поиск людей, являющихся гражданами одной из стран НАТО.

Другими словами, для каждого параметра, который я отправляю, мне также необходимо отправить метаданные, к какому столбцу относятся параметры и как эти параметры следует использовать. До сих пор я отправлял фиксированный набор параметров поиска в виде пар ключ-значение, где серверная сторона знала бы, какой тип данных и какой тип проверки следует интерпретировать как. Теперь мне нужно отправить объекты, которые также содержат такую ​​информацию, потому что пользователь может решить, для какого количества столбцов отправить параметры.

Поэтому для каждого запроса, кроме какой таблицы и каких столбцов для возврата, мне нужно знать следующее для каждого критерия запроса:

  • Какой столбец проверить
  • Какой тип проверки выполнять (например, между, больший, чем в списке и т. Д.)
  • Вышеприведенное также должно соответствовать структуре данных параметра (equals имеет одно значение, значение /range должно иметь два значения, а list - 1-*)
  • Тип данных параметра / столбца (?)
  • Возможно, критерии сортировки.

Теперь я могу отправить это как чистый JSON и создать свою собственную сторону сервера интерпретатора, которая может генерировать либо SQL, JPQL, либо запрос критерия, используя ORM. Последний мой вероятный выбор. У меня, однако, есть ощущение, что должно быть стандартное решение для отправки данных динамического SQL-запроса, например, со стороны клиента на сторону сервера. Например, рассмотрим сайт знакомств, где пользователи могут искать возможных партнеров, основываясь на множестве возможных вариантов. Для этого существует так много приложений, я был бы удивлен, если бы не было стандартного решения для этого.

0 ответов

Другие вопросы по тегам