该程序的现有设计是将所有更改写入带有时间戳的更改日志表。为了获取项目属性的当前状态,我们JOIN
进入更改日志表并获取具有最新时间戳的行。
这是跟踪当前值的一种混乱方式,但我们目前无法轻易更改此更改日志设置。
我打算通过在更改日志表中添加“IsMostRecent”位来稍微修改行为。这将允许我简单地拉出设置了该位的行,而不是MAX()
聚合或递归查找。
您将采用什么策略来确保始终正确设置该位?或者您是否建议了一些不影响当前使用记录表的替代方案?
目前我正在考虑一种触发方法,它关闭所有其他行的位,然后为最近一行打开它INSERT