我想知道列 create_time
应该是什么样的表和update_time
被添加到?
如果我有video
表,video_detail
表,tag
表和tag_video_relation
表。
我知道表(例如 tag``tag_video_relation
)不需要 create_time
和update_time
但是video
呢?和video_detail
?
如果我在 video
有 100 万行表,create_time
和update_time
会花费大量存储空间。
那么,在什么情况下什么时间我们需要create_time
和update_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/