sql - 创建/更新时间戳 - 何时添加/使用?

标签 sql database-design timestamp updatedate

我想知道列 create_time 应该是什么样的表和update_time被添加到?

如果我有video表,video_detail表,tag表和tag_video_relation表。

我知道表(例如 tag``tag_video_relation )不需要 create_timeupdate_time但是video呢?和video_detail

如果我在 video 有 100 万行表,create_timeupdate_time会花费大量存储空间。

那么,在什么情况下什么时间我们需要create_timeupdate_time在表中?

最佳答案

我发现最好将字段添加到所有表中,因为它们通常会在以后变得有用。

他们将帮助您调查问题并确定它们发生的时间。它们对于诊断和调试问题非常有值(value)。

您可以在 Ruby On Rails 等框架中看到这种方法,其中新模型/表的默认模板(“骨架”)自动包含created_at 和updated_at。

至于 tag_video_relation,不需要 create_time 和 update_time - 实际上我认为它们对于这种关系来说是有用的列。在许多情况下,了解关系何时创建的能力是需要存储的有用信息。如果仅创建或删除关系,则关系的“updated_at”列可能是您没有更新字段的一种情况。

就存储而言,我相信这是一个微不足道的问题,对于 Oracle、SQL Server 和 Postgres 等现代 rdmbs 通常不是问题,它们的目的是允许从数百万行、数千行中快速检索信息表数。

我在应用程序(包括较旧的和较新的技术)和数据仓库领域工作了很多年,频繁向许多表添加字段的趋势使我形成了这一观点。将其添加到我使用过的所有表中是我的个人实践,rails 等框架使用这个概念的事实现在看来很好地验证了我自己的实践。

关于sql - 创建/更新时间戳 - 何时添加/使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21954058/

相关文章:

javascript - 是否有由 HTML + css + javascript 支持的 sql 编辑器?

SUM 上的 NULL 值的 SQL 问题

php - AJAX变量处理

sql - 时间表数据库架构

javascript - Javascript 中时间戳的区别

javascript - 在javascript中将时间戳转换为人类日期的函数

mysql - 1 张非常大的 table 还是 3 张大 table ? MySQL 性能

mysql - 具有相同列的两个表或具有附加列的一个表?

asp.net-mvc - 从网站向数据库中插入 100k 行

php - 添加到多个表时Mysql当前时间戳