У меня есть таблица PARTSORDER. Я хочу сохранить отслеживание последнего времени модификации для удобной записи для легкого доступа позже (запросы заказов, которые были изменены два дня назад). Должен ли я иметь столбец с типом даты и времени, чтобы указать время на него или лучший способ, который вы обычно используете? спасибо,как сохранить дорожку последнего измененного времени
ответ
Если вы используете MS SQL Server, вы хотите использовать DATETIME колонку. TIMESTAMP может выглядеть хорошо сначала, но вы не можете запросить его или использовать его в индексе. Это больше для отслеживания порядка, в котором все произошло в базе данных, или сравнения исходной записи с базой данных для изменений при обновлении (что вы должны делать, если вы еще не находитесь в многопользовательской среде). Детали: Timestamps vs Datetime data types
Я даже работал над системами, у которых есть таблица журналов для отслеживания изменений, поскольку в записи часто бывает несколько изменений. Кроме того, некоторые из них имеют другую таблицу, которая отслеживает отдельные изменения, сделанные в списке типов ключей/значений, вызванных триггером обновления. Эти данные связаны с журналом и, в конечном счете, с записью. Затем вы можете легко создать историю всех изменений, внесенных в запись.
я почти всегда имею следующие четыре аудит поля:
CREATED_BY
CREATED_DATE
MODIFIED_BY
MODIFIED_DATE
Они позволяют для записи оригинального пользователя/даты, а также дата последнего изменения пользователя/даты.
Кроме того,
Если вам нужна история изменений (больше, чем просто самый последний), то вы всегда можете использовать журнальный столик сортов.
В MySQL вы можете создать столбец TIMESTAMP в таблице, который будет автоматически установлен на текущую дату и время, когда они будут изменены (в INSERT и UPDATE).
Вот пример:
CREATE TABLE `PARTSORDER` (
`modified` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM;