背景:我们有一个应用程序(用 Python 编写),它从各种来源接收数据,对其进行处理,并将结果存储在结果表中。结果表每次都会被覆盖,因为 结果是根据复杂算法组合来自不同来源的数据。有一个业务需求是能够比较不同日期的结果,因此我们现在将每天的结果存储在历史表中,并带有一个额外的字段tag
来标识应用程序的每次运行。
例子:
数据:
id company_name vat_id url
123 Funny Company 123456 funny-company.com
数据历史:
tag id company_name vat_id url
2021-05-23 123 Funny Company 123456 funny-company.com
每次运行的结果变化不大 - 大约 3-5% 的行被更改或添加,因此历史表中有 95% 是重复数据。
问题:请建议一个合适的数据模型,它只允许存储执行的最后一个结果,并且有“增量”表,可以让您轻松有效地
为应用程序的任何一天重新创建结果,并且不会占用太多空间?
UPD:在与受人尊敬的评论中交谈之后0xdb
,asanisimov
现在我倾向于选择以以下格式保存每天的增量:
在右侧,特定日期的恢复数据。现在我试图从左侧显示的数据中了解如何有效地实现这一点?