<分区>
我有一个关于我们在许多解决方案中看到的每条记录的两个附加列(timeCreated、timeLastUpdated)的问题。我的问题:是否有更好的选择?
场景:您有一个巨大的数据库(就表而言,而不是记录),然后客户来要求您为 80% 的表添加“时间戳”。
我相信这可以通过使用单独的表 (TIMESTAMPS) 来完成。除了明显的时间戳列之外,该表还将具有表名和正在更新的表的主键。 (我在这里假设您使用 int 作为大多数表的主键,但表名很可能必须是字符串)。
为了想象这个假设这个基本场景。我们会有两个表:
付款:-(您的日常记录)
时间戳:- {当前时间戳} + {TABLE_UPDATED
, id_of_entry_updated
, timestamp_type
}
请注意,在此设计中,您不需要 native 支付对象中的那两个“额外”列(顺便说一下,这可能会通过您的 ORM 解决方案),因为您现在正在通过 TABLE_UPDATED< 进行索引
和 id_of_entry_updated
。此外,timestamp_type
会告诉您条目是否用于插入(例如“1”)、更新(例如“2”)以及您可能想要添加的任何其他内容,例如“删除”。
我想知道您对这个设计有什么看法。我最感兴趣的是最佳实践,即随着时间的推移有效和扩展的方法。非常欢迎引用、链接、博客条目。我知道至少有一项专利(正在申请中)试图解决这个问题,但目前似乎还没有公开细节。
干杯, 爱德华多