Wendelius
В простейшей форме "отключение" строки может быть просто столбцом, который определяет, является ли строка допустимой или недопустимой, как описано в решении 1.
Однако иногда момент во времени также интересен. Например, подумайте о билете на автобус. Когда вы приобретаете его, он действителен до тех пор в какой-то момент времени. Другими словами, есть дата и время, когда срок действия заканчивается. До этого времени билет действителен.
Другой пример - служащий. Если сотрудник неактивен, интересно, когда это произошло, или достаточно просто знать, что сотрудник неактивен? Если момент интересен то у вас вероятно должно быть поле даты, Inactivated
например. В этом поле будет храниться дата, когда сотрудник был помечен как неактивный. Если это поле пусто, то сотрудник активен.
Запрос такой структуры будет означать что-то вроде:
Запрос активных сотрудников:
SELECT * FROM Employee e WHERE Inactivated IS NULL
Запрос неактивных сотрудников:
SELECT * FROM Employee e WHERE Inactivated IS NOT NULL
Запрос сотрудников, которые были инактивированы в течение последних 5 дней
SELECT * FROM Employee e WHERE Inactivated BETWEEN GETDATE() - 5 AND GETDATE()
Если вы решили сохранить недействительность в качестве даты, приведенные выше примеры просто царапают поверхность. Поэтому вы можете прочитать больше об интервалах дат и обработке дат в запросах.