我需要通过修订来构建和处理数据的想法。 例如,我有一个对象数据库(例如汽车)。每个对象都有许多属性,这些属性可以是任意的,因此没有用于描述这些对象的集合模式。这些对象可能保存为键值对。
现在我需要更改对象的属性。我不想完全重写它 - 我希望能够返回并查看这些属性的更改历史记录,这就是为什么我要添加新属性并保留旧属性(所以我猜一个时间戳可以完成这项工作)告诉哪个属性是最新的。)
与此同时,我希望能够获取有关快照中任何对象的信息,只包含每个属性的最新版本。
任何想法最好的方法是什么?至少请指出我正确的方向。谢谢!
答案 0 :(得分:2)
一种可能性是拥有一个对象和属性表(您可能已经拥有)。 创建包含的关联表 ID ObjectId PropertyId值Date_Added / version_number(根据您的选择,如果您想使用时间戳或序列列)
根据您的问题,您将始终添加到关联表,并且永远不会更新它。
如果要获取最新对象属性的快照,则需要对按date_added / version number排序的属性执行DISTINCT查询。 对于给定的属性,检查历史记录也很简单。
我希望这会有所帮助