postgresql – 在PostreSQL中实现数据版本控制的方法

postgresql – 在PostreSQL中实现数据版本控制的方法,第1张

概述你能分享一下你在PostgreSQL中如何实现数据版本控制的想法. (我已经询问了有关 Cassandra和 MongoDB的类似问题.如果您有任何想法,哪个db更好,请分享) 假设我需要一个简单的通讯录中的版本记录.地址簿记录存储在一个表中,为了简单起见没有关系.我期望的历史: >将不经常使用 >将一次性使用,以“时间机”的形式呈现 >不会有更多的版本比几百到单个记录. >历史不会过期. 我正在 你能分享一下你在Postgresql中如何实现数据版本控制的想法. (我已经询问了有关 Cassandra和 MongoDB的类似问题.如果您有任何想法,哪个db更好,请分享)

假设我需要一个简单的通讯录中的版本记录.地址簿记录存储在一个表中,为了简单起见没有关系.我期望的历史:

>将不经常使用
>将一次性使用,以“时间机”的形式呈现
>不会有更多的版本比几百到单个记录.
>历史不会过期.

我正在考虑以下方法:

>创建一个新的对象表以存储具有地址簿表模式副本的记录历史记录,并将时间戳和外键添加到地址簿表中.
>创建一种减少表格以存储地址簿记录的更改.这样的表将包括:AddressBookID,TimeStamp,FIEldname,Value.这样我只会将更改存储到记录中,我不必将历史表和地址簿表保持在同步状态.
>创建一个表来存储串行(JsON)地址簿记录或更改地址簿记录.这样的表格将如下所示:AddressBookID,Object(varchar).
再次,这是模式较少,所以我不必保持历史表与地址簿表同步.
(This is modelled after Simple Document Versioning with CouchDB)

我做类似于你的第二种方法:将表与实际的工作集和具有更改的历史(timestamp,record_ID,property_ID,property_value)相结合.这包括创建记录.第三个表格描述了属性(ID,property_name,property_type),这有助于在应用程序中更高的数据转换.所以你也可以轻松跟踪单个属性的更改.

而不是一个时间戳,你也可以有一个类似的,你每增加一个record_ID的变化,所以你有一个实际的版本.

总结

以上是内存溢出为你收集整理的postgresql – 在PostreSQL中实现数据版本控制的方法全部内容,希望文章能够帮你解决postgresql – 在PostreSQL中实现数据版本控制的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1170315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存