如何跟踪上次修改时间

时间:2009-06-15 20:37:23

标签: database-design

我有一个PARTSORDER表。我想保留最后修改时间的轨道以便于记录,以便以后轻松访问(两天前修改的查询订单)。我是否应该使用具有日期时间类型的列来为其添加时间或更常用的方式?感谢,

3 个答案:

答案 0 :(得分:1)

我几乎总是有以下四个审核字段:

CREATED_BY
CREATED_DATE
MODIFIED_BY
MODIFIED_DATE

这些允许记录原始用户/日期以及上次修改的用户/日期。

此外,

如果您需要更改历史记录(不仅仅是最近的更改),那么您始终可以使用各种日记帐表。

答案 1 :(得分:0)

在MySQL中,您可以在表上创建TIMESTAMP列,该列将在修改时自动设置为当前日期和时间(在INSERT和UPDATE上)。

以下是一个例子:

CREATE TABLE `PARTSORDER` (
 `modified` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=MyISAM;

答案 2 :(得分:0)

如果您使用的是 MS SQL Server ,则需要使用 DATETIME 列。 TIMESTAMP最初可能看起来不错,但您无法查询或在索引中使用它。它更适用于跟踪数据库中发生事件的顺序,或者将更新时的原始记录与数据库进行比较(如果您尚未在多用户环境中,则应该执行此操作)。详情:Timestamps vs Datetime data types

我甚至在具有跟踪更改的日志表的系统上工作,因为通常会对记录进行多次修改。此外,有些表还有另一个表,用于跟踪由更新触发器驱动的键/值类型列表中所做的单个更改。此数据与日志相关联,最终与记录相关联。然后,您可以轻松地建立对记录所做的所有更改的历史记录。