Схема реляционной базы данных Never Delete Дизайн

Я рассматриваю разработка схемы реляционной БД для БД, которая на самом деле ничего не удаляет (устанавливает флаг удаления или что-то в этом роде).

1) Какие столбцы метаданных обычно используются для размещения такой архитектуры? Очевидно, что для IsDeleted можно установить логический флаг. Или, может быть, лучше работает просто отметка времени в столбце «Удалено», а возможно и то и другое. Я не уверен, какой метод вызовет у меня больше проблем в долгосрочной перспективе.

2) Как обычно выполняются обновления в таких архитектурах? Если вы отметите старое значение как удаленное и вставите новое, вы столкнетесь с проблемами ограничения уникальности PK (например, если у вас есть идентификатор столбца PK, тогда новая строка должна иметь тот же идентификатор, что и тот, который вы только что отметили как недопустимый, или иначе все ваши внешние ключи в других таблицах для этого идентификатора станут бесполезными).

6
задан Davis Dimitriov 21 June 2011 в 21:32
поделиться