Разработка процесса архивирования данных (SQL Server 2005) - PullRequest
2 голосов
/ 29 ноября 2011

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

Упрощенный набор таблиц: Claim, ClaimDetails, StatusHistory (отслеживает изменения в статусе заявки), Comments & Files

Среда: SQL Server 2005, ASP.Net MVC (.NET Framework v3.5 SP1)

Claim является основным объектом и имеет дочерние строки в упомянутых подстолях. У некоторых есть детали, а другие используются для отслеживания изменений. В конечном итоге, основываясь на некоторых критериях, Claim становится «готовым к архивированию», как описано выше. Простыми словами, архивированные Claims будут идентифицироваться из базы данных и обрабатываться по-разному в веб-приложении.

Вот самая простая версия: (вид сверху)

  • Создайте скрипт, который помечает Claim «заархивированный» в БД.
  • Архивная строка и ее дочерние строки могут храниться в одной и той же таблице (установить флаг) или перемещаться в другую таблицу, которая будет репликой исходной.
  • В веб-приложении мы позволим пользователю фильтровать Claims на основе статуса архива.
  • Возможно, в будущем потребуется «разархивировать» Claim.

Что мне нужно знать?

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

  2. Является ли своевременный сценарий SQL лучшим вариантом для этого сценария?

  3. Стоит ли использовать отдельные таблицы или просто добавить флаг "Archived" к каждой таблице?

  4. Для оценки эффективности выбранного подхода - какая разница, если мы планируем иметь около 10 000 Claims, а что, если это будет 1 миллион. Вкратце, пожалуйста, укажите подход для легких и тяжелых нагрузок.

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

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

Существует ли стандартная структура или шаблон, к которому я должен обратиться, чтобы узнать о процессе архивирования. Любая типовая ссылка на статью или инструмент поможет мне узнать больше.

1 Ответ

2 голосов
/ 21 декабря 2011

Вы можете найти хорошую дискуссию по этой теме здесь , а это еще одна.

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

...