gpt4 book ai didi

postgresql - 在 PostgreSQL 中实现数据版本控制的方法

转载 作者:行者123 更新时间:2023-11-29 11:13:19 24 4
gpt4 key购买 nike

您能否分享您的想法,您将如何在 PostgreSQL 中实现数据版本控制。 (我问过关于 CassandraMongoDB 的类似问题。如果您有任何想法哪个数据库更好,请分享)

假设我需要对一个简单的地址簿中的记录进行版本控制。为简单起见,通讯录记录无关系地存储在一张表中。我希望历史:

  • 不会经常使用
  • 将一次性全部使用,以“时光机”的方式呈现
  • 一条记录的版本不会超过几百个。
  • 历史不会过期。

我正在考虑以下方法:

  • 创建一个新的对象表来存储带有地址簿表模式副本的记录的历史记录,并向地址簿表添加时间戳和外键。

  • 创建一种无架构表来存储对地址簿记录的更改。这样的表将包括:AddressBookId、TimeStamp、FieldName、Value。这样我将只存储对记录的更改,而不必使历史表和地址簿表保持同步。

  • 创建一个表来存储序列化 (JSON) 地址簿记录或对地址簿记录的更改。此类表如下所示:AddressBookId、TimeStamp、Object (varchar)。同样,这是较少的架构,因此我不必使历史表与地址簿表保持同步。( This is modelled after Simple Document Versioning with CouchDB )

最佳答案

我做的事情与您的第二种方法类似:拥有包含实际工作集的表和包含更改的历史记录(时间戳、record_id、property_id、property_value)。这包括创建记录。第三个表描述了属性(id、property_name、property_type),这有助于应用程序中更高层的数据转换。因此,您还可以非常轻松地跟踪单个属性的更改。

除了时间戳之外,您还可以使用类似 int 的时间戳,每个 record_id 的每次更改都会递增,因此您有一个实际的版本

关于postgresql - 在 PostgreSQL 中实现数据版本控制的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com