您能否分享您的想法,您将如何在 PostgreSQL 中实现数据版本控制。(我问过关于Cassandra和MongoDB的类似问题。如果您有任何想法哪个 db 更适合,请分享)
假设我需要在一个简单的通讯录中对记录进行版本化。为简单起见,地址簿记录存储在一个没有关系的表中。我希望历史:
- 将不经常使用
- 将一次全部使用,以“时间机器”的方式呈现
- 一条记录不会有超过几百个版本。
- 历史不会过期。
我正在考虑以下方法:
创建一个新的对象表来存储具有地址簿表模式副本的记录历史记录,并将时间戳和外键添加到地址簿表。
创建一种无模式表来存储对地址簿记录的更改。这样的表将包括:AddressBookId、TimeStamp、FieldName、Value。这样,我将只存储对记录的更改,而不必保持历史记录表和地址簿表同步。
创建一个表来存储序列化 (JSON) 通讯录记录或对通讯录记录的更改。此类表如下所示:AddressBookId、TimeStamp、Object (varchar)。同样,这是较少的架构,因此我不必使历史记录表与地址簿表保持同步。(这是在使用 CouchDB 进行简单文档版本控制之后建模的)