首页 > 解决方案 > 如何在 SQL Server 中存储历史主数据?

问题描述

Employee让我们假设一个简单的场景,其中我们有 3 个表Designation& Allowance

员工表

在此处输入图像描述

在此处输入图像描述

我面临的问题是员工的指定和与指定相关的津贴金额将来可能会发生变化。

如果发生任何此类变化,将根据新的主数据提供新的配额。但旧月份的报告现在将显示无效数据。因为约翰现在是一名军官,并根据他的指定领取津贴。但将来他可能会升职,他的指定可能会变成经理。然后他将获得经理津贴。然后,如果有人去津贴报告并过滤约翰上个月的数据。该报告将显示作为官员给予 john 的津贴,但他在该报告中的指定将是经理,因为 john 的指定 ID 已更新。

所以我的问题是,记录、维护和跟踪主数据的最佳方式是什么,即使主数据将来发生变化,与之关联的事务数据仍然有效。

标签: sql-serverdatabasedatabase-designrelational-database

解决方案


您可以使用时态表来自动捕获行的历史版本,并使您能够查询“截至”以前的时间点。


推荐阅读