Я разрабатываю модуль архива для приложения, использующего Dotnet и SQL Server в качестве серверной части. Начиная с нескольких подходов к архивированию, мы решили создать специальное приложение для архивирования всей базы данных до заданного порога в другой зеркальной базе данных, а затем удаления заархивированных элементов из исходной БД. Это должно быть сделано из пользовательского приложения, а не из Связанного сервера, задания, службы SSIS, репликации или чего-либо еще.
Есть некоторые предметы, которые будут очищаться и перезаписываться при каждом запуске архива. Перед тем, как приступить к сборке модуля, мы думали удалить ограничения внешнего ключа из зеркальной архивированной базы данных, чтобы избежать любого нарушения ссылочной целостности, когда мы очистили эти таблицы и перезаписали (только ограничения будут удалены, столбцы и значения все еще существуют в архивированной БД). Однако такой подход не только кажется мне подозрительным, но и несколько тревожным. Поэтому здесь я спрашиваю, каков будет правильный подход к решению этой проблемы?