所有数据库表中CreatedDate和ModifiedDate列的优缺点

Ism*_*ilS 2 mysql database sql-server database-design

优缺点都有什么?我们何时应该拥有它们何时不应该拥有它们?

UPDATE

在使用RepositoryFactory生成的更新SP中,此注释是什么?是否必须对上面的列不存在做任何事情?

--The [dbo].[TableName] table doesn't have a timestamp column. Optimistic concurrency logic cannot be generated
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 12

如果您不需要有关数据的历史信息,则添加这些列将不必要地填充空间并导致更少的记录适合页面.

如果您确实可能需要历史信息,那么这可能不足以满足您的需求.您可能需要考虑使用其他系统(如ValidFrom和ValidTo),并且永远不要修改或删除任何行中的数据,只需将其标记为不再有效并创建新行.

有关保存有关数据的历史信息的不同方案的更多信息,请参阅Wikipedia .您提出的方法与该页面上的类型3类似,并且存在同样的缺点,即仅记录有关上次更改的信息.我建议你也阅读其他一些方法.

  • 我从事数据库工作已有 20 多年了。如果没有这些领域,将来就会被烧死。这些是您以后不想添加的关键字段。占用的空间很小,所以值得。对于查找表,它甚至可能会有帮助(该选项什么时候被添加到查找中?) (3认同)
  • 根据我的经验,您最好从一开始就添加它们。你认为你不会需要它们,直到你的老板在你喝咖啡之前问你“这是谁做的,何时做的” (2认同)