是否将last_modified列添加到所有表中?

时间:2009-10-22 14:02:37

标签: mysql database-design

为新项目设计数据库表时,最好为每个表添加一个自动更新的last_modified列吗?

性能是否会让last_modified列自动更新太多而不值得?

此列可能有许多用途,一个用于辅助缓存。但是将这样一个列放到每个表中是不是太过分了?

另外 - 有一个last_modified列还有其他有用的理由吗?

这是 MySQL 特有的,因为它是我使用的唯一系统。

4 个答案:

答案 0 :(得分:2)

取决于!

您是否需要知道每个表的last_modified日期?如果是这样,那么您需要该列。

迎合域名,然后担心表现,除非你知道你在那张桌子上会有疯狂的INSERTS / UPDATES ......

答案 1 :(得分:2)

我发现这是一个特别令人不安的信息。我只会在修改记录时获得,但不会修改记录,或者由谁或为什么或如何修改。

我更喜欢为我的重要表格提供审计表。

答案 2 :(得分:1)

你为什么要这样?

在插入或更新时,它会受到很小的性能影响。如果您需要发送自特定日期以来更改的记录(我们通常称为增量Feed)的信息,它有时会很有用。它对于数据更改的管理并不十分有用。与Raj More一样,我更喜欢审计表方法,该方法存储变更数据,旧值和新值以及进行更改的人员。然后,这可用于回滚特定的更改或一组更改,如果您仅依靠备份来回滚坏数据,则很难做到这一点。

在数据是静态的或者从批处理(如导入)而不是用户界面更新数据的情况下,它通常是没有用的。例如,为什么还要在查找表上做这样的事情呢?

答案 3 :(得分:0)

好吧,我会说你应该为那些记录经常被某些用户操作改变的表有列。最重要的是,如果您具有适当的身份验证,那么存储进行更改的人员会很有用。当有人向你询问是谁因为某些事情被打破而对记录进行了一些更改时,它也可能会让你感到悲伤。