2009-06-15 103 views
0

我有一个PARTSORDER表。我想保留上次修改时间的轨迹以便稍后轻松访问(两天前修改的查询订单)。我应该有一个日期时间类型的专栏来投入时间或者通常使用更好的方式吗?谢谢,如何保持上次修改时间的轨迹

回答

0

。 TIMESTAMP首先可能看起来不错,但不能查询它或在索引中使用它。更多的是跟踪事件在数据库中发生的顺序,或者比较原始记录与数据库更新时的更改(如果您尚未处于多用户环境中,您应该这样做)。详细信息:Timestamps vs Datetime data types

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

1

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

CREATED_BY 
CREATED_DATE 
MODIFIED_BY 
MODIFIED_DATE 

这些允许记录原始用户/日期以及最后修改用户/日。

此外,

如果您需要更改的历史记录(不仅仅是最近的),那么你可以随时使用了各种各样的期刊表。

0

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

下面是一个例子:如果您正在使用MS SQL Server的,你需要使用一个DATETIME

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