是否有理由不在每个表中添加时间戳?

时间:2019-07-17 04:39:07

标签: mysql sql database-design timestamp

我要在一些重要的表中添加createdupdated时间戳列,并想知道为什么我不应该将它们放在几乎每个表中都只是为了拥有而已,因为存储很便宜。这是某种不好的做法吗?我是在学脚吗?

具体来说,我要输入:

created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated TIMESTAMP

1 个答案:

答案 0 :(得分:1)

我认为您的想法不错。我创建的几乎所有表都有以下列:

  • createdAt-创建日期
  • createdBy-谁插入了行

有时:

  • createdOn-在哪个系统上创建行

我倾向于减少使用update的次数(我更喜欢维护所有版本并获取最新版本),但这似乎是一个好主意。

主要缺点是,这占用了每一行的空间。该空间不仅占用空间,而且还意味着每个数据页上可以存储的行减少了-稍微减慢了某些查询的速度。如果您的表有成千上万的行,那可能不是问题。如果他们有数十亿行,那么开销可能是个问题。

我认为,可维护性的好处远远超过了空间问题。