【发布时间】:2013-06-12 21:21:05
【问题描述】:
我希望设计一个数据库来跟踪每组更改,以便我将来可以参考它们。比如:
Database A
+==========+========+==========+
| ID | Name | Property |
1 Kyle 30
如果我将行的“属性”字段更改为 50,它应该将该行更新为:
1 Kyle 50
但应该保存该行的属性在某个时间点为 30 的事实。那么如果该行再次更新为70:
1 Kyle 70
应该保留该行的属性为 50 和 70 这两个事实,以便通过一些查询我可以检索到:
1 Kyle 30
1 Kyle 50
它应该认识到这些只是在不同时间点的“相同条目”。
编辑:这段历史需要在某个时间点呈现给用户,因此理想情况下,应该了解哪些行属于同一个“修订集群”
设计这个数据库的最佳方法是什么?
【问题讨论】:
-
您的应用程序是否需要了解历史记录(即向最终用户展示此历史记录),还是出于审计目的?
-
是否需要将其存储在数据库中?通常这是在应用程序中完成的,因此它可以在版本控制中并在多个开发人员之间应用。
-
是的,应用程序需要向用户呈现此历史记录。
-
在这种情况下,您可能希望使用区块链,因为它保留了底层数据库的更改历史记录并允许您导航到以前的提交——这对于建立审计跟踪很有用。
标签: sql postgresql change-tracking