Создание песочницы базы данных / области тестирования для пользователей для запуска сценариев «что если» - PullRequest
3 голосов
/ 29 июля 2010

Я пытаюсь выяснить, как создать область «песочницы» в моем новом приложении Windows .NET / SQL Server.Вот требования:

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

Структуры данных.выше также будет использоваться в обычной производственной базе данных.Таким образом, с одной стороны, у нас будет построена вся структурная информация, с другой стороны, каждый пользователь (в настоящее время от 10 до 30 человек) должен иметь возможность создавать свои собственные сценарии тестирования.

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

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

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

Любые указатели или предложения будут высоко оценены,

1 Ответ

2 голосов
/ 29 июля 2010

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

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

Вы не называете цены, но предположим, что у вас есть таблица ПРОДУКТОВ.
Позвольте вашему пользователю настроить новый сценарий и дать ему имя, которому затем будет присвоен идентификатор.

Вы можете создать таблицу в отдельной схеме (необязательно) - сценарий. ПРОИЗВОДИТ таблицу и позволит людям вставлять в нее замещающую информацию о продуктах. Затем вы могли бы создать СОЮЗ всех ПРОДУКТОВ за вычетом тех, которые находятся в сценарии. Таблица ПРОДУКТОВ на основе идентификатора сценария и идентификатора продукта, которая предоставит пользователям информацию о пользовательских ценах + все текущие цены.

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

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

Это все теоретическое мышление с моей стороны - надеюсь, оно поможет заставить колеса вращаться.

...