AlwzLearning Ответов: 3

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


Привет,

У меня есть новый проект, в котором мы должны предоставить клиенту возможность выполнять adhoc-запросы, где они могут группироваться или фильтроваться и т. д.

Я новичок в этом деле, и мне трудно понять, как мы можем это сделать?

1) Можно ли это сделать из пользовательского интерфейса
2) или им нужно дать базу данных ?

Может ли кто-нибудь подсказать, как приступить к анализу для этого.

Что я уже пробовал:

Пытаясь найти различные инструменты BI, которые будут служить этой цели.

3 Ответов

Рейтинг:
5

gregorio89

для этого используйте службы reporting services


Рейтинг:
23

Peter Leow

Быстрые ответы на следующие вопросы:
1) Да
2) нет
Во-первых, определите, какие запросы могут делать пользователи, основываясь на их ролях и правах доступа.
Во-вторых, на стороне сервера составьте SQL-скрипт для каждого запроса с учетом SQL-инъекция[^]
В-третьих, на стороне клиента перечислите тип запросов, которые может выполнять вошедший в систему пользователь, исходя из его роли и права доступа, определите элементы управления пользовательским интерфейсом, позволяющие ему вводить необходимые параметры для запросов. Например, если параметры фиксированы, используйте переключатели, флажки или выпадающие списки для выбора, а также текстовые поля. Насколько это возможно, ограничьте использование свободного текста пользователем.
Наконец, пользователь отправит свой выбор запроса и необходимые параметры в серверный скрипт, который, помимо прочего, очистит и проверит параметры перед тем, как ввести их в правильный SQL-скрипт для дальнейшей обработки.


Рейтинг:
17

CHill60

Раньше я работал в среде, которая имела аналогичные требования.
У нас была ночная работа, которая создала отдельную базу данных только для чтения, к которой могли обращаться пользователи/другие клиенты.

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

Наш подход состоял в том, чтобы настоять на том, чтобы они прислали нам (ИТ-отделу) свои требования, и мы построили отчеты для них ... они могут быть запущены в режиме реального времени (два типа выходов ... excel или csv) или он был запущен для них в одночасье.

Мы действительно разработали своего рода систему "я хочу этот запрос", которая была очень ограничена в своем поведении (например, избегайте SQL-инъекций).

Мы действительно определили, что соответствующий разговор с "клиентом" может закончиться *контролируемыми* запросами либо к живой базе данных, либо к базе данных MI (копия берется каждую ночь исключительно для того, чтобы пользователи могли запрашивать, не повышая производительности в живой системе). У нас были запущенные программы, которые читали текстовые (xml) файлы, чтобы определить, какой запрос запускать и где хранить результаты.

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

Поскольку жизнь такова, как она есть, они также обнаружили сторонний инструмент, который позволил бы им создавать свои собственные специальные запросы... они (бизнес-пользователи) думали, что это здорово. Мы (оно) знали, что это было s**t. Это стоило компании много (например, миллионы) денег

TL; DR;.... контролируйте" специальные " запросы, такие как бубонная чума. Пусть пользователи "думают", что они делают ad-hoc, привязывают его так крепко, что они не могут пукнуть.

Прошу прощения за разглагольствования ... это единственная причина, по которой я поседел в свои 30 лет