Определяемые пользователем столбцы для таблицы базы данных - PullRequest
0 голосов
/ 19 октября 2018

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

Описание: В базе данных есть таблица с 500 столбцами.Теперь конечные пользователи (опытные пользователи или администраторы) могут захотеть определить производные столбцы.Производный столбец - это столбец, основанный на других столбцах.Производный столбец технически может быть фактическим физическим столбцом или просто логическим столбцом, который мы генерируем во время выполнения с помощью динамического запроса SQL.

Пример: скажем, есть столбец с именем «WageOnDay», а есть другой с именем «WageDate»,Теперь конечный пользователь может захотеть определить производный столбец с именем «WageForPastMonth» или «WageForPastYear» или просто производный столбец с «WageDate» + 2000.Пользователь может захотеть определить любое количество таких дополнительных производных полей и захочет определить их через пользовательский интерфейс.Пользователь также хотел бы указать настраиваемое отображаемое имя для этих производных столбцов.Пример: пользователь может захотеть вызвать производный столбец для «WageDate» + 2000 как «WageWithBonus» или «WageAfterAdjustment».Пользователь может время от времени изменять отображаемое имя производного столбца и его определение (текущее определение «WageDate» + 2000 на «WageDate» + 4000). Производное определение столбца также может представлять собой агрегирование, например сумму по заработной плате длядиапазон дат и т. д.

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

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

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

Я знаю, что существуют такие инструменты отчетности, как QlikView,CrystalReports и JasperReport, которые имеют описанную мной функциональность.

Но можем ли мы реализовать ее в нашем проекте?Если нет, то возможна интеграция с любым другим инструментом.

Пожалуйста, поделитесь своими мыслями и предложениями.Сообщите нам, было ли выполнено такое требование, и о техническом подходе высокого уровня.

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете добавить столбец XML в таблицу для пользовательских полей, а затем просто манипулировать им на прикладном уровне.

...