我需要在一个应用程序中建立“版本控制”的功能,想知道如何最好地处理它。
通常情况是:
模型A有许多B
当更新模型A的属性时,需要对其进行版本控制,并且还需要对其关联对象(B)进行版本控制。因此,应用程序将显示模型A的当前版本,但也必须能够查看先前版本的A及其关联对象。
我想使用文档存储,但这只是应用程序的一部分,使用文档存储和关系数据库会增加更多的复杂性。
我已经考虑使用星型模式,但在继续之前,我想知道是否有一种设计模式可以解决这个问题?
这个问题主要是解决在关系数据库中存储相关对象的版本的问题。需要能够有效地查询数据(例如,序列化对象不足以满足需求)。
更新:我正在思考/已经实现了某些方法,但希望知道是否有“更好的方法”。
通常情况是:
模型A有许多B
当更新模型A的属性时,需要对其进行版本控制,并且还需要对其关联对象(B)进行版本控制。因此,应用程序将显示模型A的当前版本,但也必须能够查看先前版本的A及其关联对象。
我想使用文档存储,但这只是应用程序的一部分,使用文档存储和关系数据库会增加更多的复杂性。
我已经考虑使用星型模式,但在继续之前,我想知道是否有一种设计模式可以解决这个问题?
这个问题主要是解决在关系数据库中存储相关对象的版本的问题。需要能够有效地查询数据(例如,序列化对象不足以满足需求)。
更新:我正在思考/已经实现了某些方法,但希望知道是否有“更好的方法”。
,---------. 1 * ,--------.
| Model A |----------| Model B|
`---------' `--------'
|PK | | a_id |
|b_version| |version |
|version | `--------'
`---------'
我会复制模型A以及所有相关的B,并递增版本属性。然后通过b_version和b.version连接B进行选择查询。只是想知道是否有更好的方法。