2

我想知道应该将列添加到create_time什么样的表中?update_time

如果我有video桌子,video_detail桌子,tag桌子和tag_video_relation桌子。

我知道表(例如tag``tag_video_relation)不需要 create_timeupdate_time列。但是videovideo_detail呢?

如果我在video表中有一百万行,create_time并且update_time会花费大量存储空间。

那么,在什么情况下,什么时候我们需要 create_timeupdate_time一张桌子上?

4

1 回答 1

2

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

他们将帮助您调查问题和问题并确定它们何时发生。它们在诊断和调试问题方面非常宝贵。

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

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

在存储方面,我相信这是一个微不足道的问题,通常不是现代 rdmbs 的问题,如 Oracle、SQL Server 和 Postgres,它们旨在允许从数百万行、数千个表中快速检索信息。

我在应用程序(旧的和新的技术)和数据仓库方面工作了很多年,经常将字段添加到许多表的趋势使我形成了这种观点。将它添加到我使用过的所有表中是我的个人实践,Rails 等框架使用这个概念的事实现在似乎很好地验证了我自己的实践。

于 2014-02-22T12:06:16.170 回答