【问题标题】:last_update timestamp for every table?每个表的 last_update 时间戳?
【发布时间】:2011-01-25 17:58:32
【问题描述】:

为每个表中的最后一行更新设置时间戳是一种好习惯吗?

还是应该只在真正需要的地方设置它们? 我怎么知道以后在哪里需要更新时间戳? 它们对哪种信息有意义?

【问题讨论】:

    标签: mysql sql database timestamp sql-update


    【解决方案1】:

    在您有乐观记录锁定的情况下,行时间戳用于行版本控制;即 2 个用户同时编辑同一条记录。

    您可以通过检查当前行时间戳和从数据库中检索行时找到的时间戳来检测数据库版本是否已更改。

    【讨论】:

      【解决方案2】:

      将其保存在用于捕获事务的表中是一个更好的决定。它可能适用于日志记录/安全性,也可能用于处理并发。

      【讨论】:

        【解决方案3】:

        我认为开始向表中添加“last_updated”时间戳是一个滑坡。所以你可能会有人问“这一行是什么时候改变的?”但是一旦您添加了 last_updated 列,他们就会问:“好的,它在 6 天前被更改了。什么被更改了?”。因此,现在您必须设置一个包含所有更改的列的“历史”表。但随后他们问,“嗯,'foo' 列在 6 天前被更改,之前的值是多少?”现在您可以跟踪整个数据库中每一行的完整历史记录!

        【讨论】:

          【解决方案4】:

          我认为真正的问题是您希望将这些时间戳用于什么目的。如果您的应用程序实际上不需要它,那么我认为存储和维护该数据的理由并不充分。

          【讨论】:

            猜你喜欢
            • 2018-04-02
            • 1970-01-01
            • 1970-01-01
            • 2016-11-28
            • 2012-02-14
            • 2020-04-19
            • 2013-11-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多