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