繁体   English   中英

为什么有created_at 和updated_at?

[英]Why have created_at and updated_at?

许多编程框架会自动将 2 个字段填充到模型/表/集合中。 在 Rails 中,两个字段是created_atupdated_at 字段的功能是不言自明的。

created_at

首次在数据库中创建记录时的时间戳。

更新时间

表中存储的任何数据的最近更改的时间戳。

我工作的一个流星计划不与这些领域来的开箱,所以加入createdAtupdatedAt在我的项目。

然后我开始思考:在什么情况下我们需要知道一个记录是什么时候第一次创建的,最后一次更新还不够吗?

  • 能够按最新/最旧对记录进行排序
  • 能够显示有关对象的信息(如user asked 10 mins ago
  • 能够分析数据(例如检查在什么时间提出问题)
  • 当您想跟踪/调试/审计我们系统中发生的事情时,它非常有用

.. 和更多。 当然,您的记录现在可能不需要它,但保存这些信息总是更好的,因为如果您现在不保存它,以后将没有简单的方法来想出它。

我认为在很多情况下,您都想知道某些东西是何时创建的。

仅以stackoverflow为例:

知道何时提出问题很重要。 如果你两年前问这个问题,然后昨天编辑它,这与你昨天问的非常不同。

知道什么时候回答了问题很重要。 想想一些徽章。 “好奇:在5个不同的日子里提出一个广受欢迎的问题,并保持积极的问题记录。”。 如果有人重新标记了我所有的问题,从而触发了将updated_at设置为今天,该怎么办。 然后,我从在不同的日子提出问题到他们似乎在同一天得到答复。

这只是两个例子。 一般的答案是:每当您想知道某个对象何时首次出现在您的系统中时,您都需要created_at 特别是如果您随后要更新该对象。

不是每张桌子都需要那些。 如果您没有明确的用例,请不要添加它们。 您的数据库和应用程序将通过计算、存储和读取它们而导致额外的性能损失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM