rya*_*zec 5 mysql change-management
我所说的一切都与关系数据库,特定的 MySQL 相关。
我在一个数据库中有许多表,对于其中一些,我想要在记录值更改时存储记录值的历史记录。我已经看到这以几种不同的方式完成:
这些不同的记录历史存储方法有哪些优缺点?还有其他我没有想到的方法吗?
由于您有许多具有不同列数的表,因此 #1 将会被淘汰,因为您将拥有一个包含所有列的聚合的大型表,并且有大量空值。
在#2 和#3 之间,我认为您需要根据想要管理的设计复杂性做出决定。我的观点是,为给定的表维护精确的存档副本并存储整个行状态(带有修改时间)会更容易。考虑一下您更新一行中多个列的情况。在这种情况下,#2 将单独记录列更改的条目,即使它是同一事务。我会选择 #3 来降低复杂性并捕获时间点行状态。