【发布时间】:2019-07-17 04:39:07
【问题描述】:
我正在将created 和updated 时间戳列添加到一些重要的表中,并想知道为什么我不应该将它们放在几乎每个表中“只是为了拥有”,因为存储很便宜。在某种程度上这是不好的做法吗?我是不是很迂腐?
具体来说,我说的是:
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated TIMESTAMP
【问题讨论】:
-
答案是,视情况而定。如果您确定您永远不需要时间戳列,则不要费心添加它。除了节省存储空间外,您还可以免于以其他方式维护它。
-
如果您需要知道表格何时被某人更新或创建的记录使用它。如果您不需要任何更新或创建时间的跟踪,则不要添加它。如果您使用的是 5.6+,则可以在时间戳中设置多个列的默认值,以便更新 TIMESTAMP DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
-
谢谢大家!我决定播放“更多数据”,但仍在合理范围内。还要感谢关于默认为 NULL 的提示。
-
我在这个论坛的很多表中都看到了这些列,但我很少看到任何使用它们的查询。在我的数据库工作中,我很少需要它们。结论:这听起来是个不错的主意,但那些列只会收集灰尘。
-
我会学究气(咳)。 “创建日期”和“更新日期”是该行的属性,而不是该行所涉及的事物的属性。也就是说,如果表是关于人的,并且我们为“stonefree”这个人找到了一行,那么“date created”不会告诉您“stonefree”的创建时间,它会告诉您row i> 那个(暂时)指的是“无石”被创造出来。还会引发审计问题,特别是如果您可以更新这些值。
标签: mysql sql database-design timestamp