【发布时间】:2018-10-09 06:53:16
【问题描述】:
我有一个带有树状结构和日期的表来跟踪更改(子、父、根、有效日期、过期日期、状态)。
但现在我也想更改历史数据。
例如表现在有这 3 条记录,
1 c1 p1 r1 2018-09-11 2018-09-13 NA
2 c1 p2 r2 2018-09-13 2018-09-15 NA
3 c1 p3 r3 2018-09-15 9999-12-01 A
现在我们想在“2018-09-12”和“2018-09-14”之间将“c1”的父级更改为“p4”,根为“r4”。所以表格会是这样的,
1 c1 p1 r1 2018-09-11 2018-09-12 NA
2 c1 p4 r4 2018-09-12 2018-09-14 NA
3 c1 p2 r2 2018-09-14 2018-09-15 NA
4 c1 p3 r3 2018-09-15 9999-12-01 A
就性能而言,解决这个问题的最佳设计是什么?
【问题讨论】:
-
我不明白。历史表显示过去数据的历史。为什么要操纵数据?如果你过去没有做过某事,你就不能说你做过。我认为这在 Oracle 中是不可能的
-
作为替代方案,您可以构建自己的日志机制,将更改写入表。
-
@hotfix 我们使用这些分组数据并根据它们制作报告,但例如一年后我们发现它们存在错误并希望修复数据并再次制作报告。
-
如果您这样做,您的数据审核员应该会变得白发苍苍。