Мы разрабатываем процесс архивирования набора записей на основе различных критериев, таких как дата, статус и т. д.
Упрощенный набор таблиц: Claim, ClaimDetails, StatusHistory (отслеживает изменения статуса претензии), Comments и Files
Среда: SQL Server 2005, ASP.Net MVC (.NET Framework v3.5 SP1)
Claim является основным объектом, и у него есть дочерние строки в упомянутых подтаблицах. Некоторые из них содержат детали, а другие используются для отслеживания изменений. В конце концов, на основании некоторых критериев Claim становится «готовым к архивированию», как описано выше. Проще говоря, заархивированные Claims будут идентифицированы из базы данных и обработаны по-разному в веб-приложении.
Вот самый простой вариант: (вид сверху)
- Создайте скрипт, который помечает
Claim"заархивированный" в db. - Архивную строку и ее дочерние строки можно либо оставить в одной таблице (установить флаг), либо переместить в другую таблицу, которая будет копией исходной.
- В веб-приложении мы позволим пользователю фильтровать
Claimsна основе статуса архива. - В будущем может возникнуть необходимость "разархивировать"
Claim.
Что мне нужно знать?
Нам нужно, чтобы это было как можно более простым и легким, а также гибким, чтобы адаптировать будущие изменения - пожалуйста, предложите подход.
Является ли своевременный запланированный сценарий SQL лучшим вариантом для этого сценария?
Должен ли я рассмотреть возможность использования отдельных таблиц или просто добавить флаг «Архив» для каждой таблицы?
Для рассмотрения производительности выбранного подхода - какая разница, если мы планируем иметь около 10 000
Claimsи что, если это 1 миллион. Вкратце, пожалуйста, укажите подход с легкой и тяжелой нагрузкой.Мы храним файлы, загруженные физически на наш сервер - я думаю, что это может остаться как есть.
Примечание. Заявка может иметь любое количество дочерних записей во всех упомянутых таблицах, поэтому она становится n-кратной.
Есть ли стандартная структура или шаблон, на который я должен ссылаться, чтобы узнать о процессе архивирования. Любая типовая справочная статья или инструмент помогут мне узнать больше.