我的目的是跟踪表中对象的更改。因此,该表包含每个对象的一个或多个快照。特别地,对象具有创建日期和类别。创建对象的日期是固定的,但是类别可能会随时间变化(即快照之间的日期可能会有所不同)。
现在,一个特殊的用例是,我需要找到n
个最新(创建日期)对象,其中当前快照属于特定类别。因此,我的问题类似于PGWiki: Find Recent Activity。但是,由于类别可能会发生变化,因此我无法使此解决方案适应用例。
始终有可能对表进行规范化并分别存储快照和对象-对象表将引用最新的快照。但是,我想尽可能地减少联接。到目前为止,我想出的最好的解决方案是在存储修订版本0
到最新修订版本的地方存储修订版本号。当然,需要注意的是,除了第一个插入之外,所有插入都会变得更加复杂。
我可以使用postgres 10。