跟踪表上的更改

gia*_*kis 6 database-design

我有一张users桌子。我想跟踪我所做的所有更改,姓名,电话等。我想创建一个额外的表changes来存储用户的id上一个和下一个版本。我保留所有users记录。这是一个好方法吗?

历史

更新

我也想过使用单独的表来记录历史,见下文

分开的历史

或者,使用单个表并从timestamp或跟踪其版本id(因为它是增量),但我认为这是一个糟糕的解决方案。

在此处输入图片说明

Twi*_*les 3

您的设计有一个很大的缺点:仅获取当前值(您大部分时间都会使用该值)是一项昂贵的操作,需要连接。

users如果您有一个包含当前数据的表和一个用于历史信息的额外表(由 的所有列和一个valid_until时间戳列组成,并且主键位于 ( user_id, valid_until)上),那么您的系统会快得多。