Я пытаюсь создать систему на Python, в которой можно выбрать количество строк из набора таблиц, которые должны быть отформатированы определенным пользователем способом. Допустим, таблица a
имеет набор столбцов, некоторые из которых содержат значение date
или timestamp
. Пользовательский формат для каждого столбца должен храниться в другой таблице, запрашиваться и применяться к основному запросу во время выполнения.
Позвольте привести пример: существуют разные способы форматирования столбца даты, например, используя
SELECT to_char(column, 'YYYY-MM-DD') FROM table;
в PostgreSQL.
Например, я бы хотел, чтобы второй параметр встроенной функции to_char()
динамически запрашивался из другой таблицы во время выполнения, а затем применялся, если он имеет значение.
Чтение определения из таблицы как таковой не является большой проблемой, вместо создания схемы базы данных, которая будет получать данные из пользовательского интерфейса, из которого пользователь может выбирать, какие инструкции форматирования применять к различным столбцам. Пользователь должен иметь возможность выбирать набор столбцов пользователя для включения в запрос пользователя, а также пользовательское форматирование для каждого столбца.
Я уже несколько дней думаю об этом элегантно и эффективно, но безрезультатно. Если пользователь поместит желаемое определение пользователя в текстовое поле и включит его в запрос, это в значительной степени сгенерирует приглашение для атак с использованием SQL-инъекций (хотя я мог бы использовать escape()
функции), а сохранение каждой возможной комбинации не представляется возможным мне тоже.