我有一个数据库来保存有关projects
.
项目有大量与它们相关的数据,这些数据被分割到其他表中,例如project_contacts
和project_images
。这些是一对多关系,其中 1 个项目可以有多个联系人和多个图像。
但是,我需要能够保留项目的“版本”。因此,如果更新了项目,则有关该项目的先前数据仍然存在。这是多对多关系的一个大问题。例如,有一个categories
表,一个project_categories
表——很多项目可以有很多类别。
当一个项目更新时,并不是每条数据都会更新。例如,如果一个项目有一个新联系人,它不会总是有一个新图像,因此图像表不会更新。
我考虑过的一种解决方案是拥有一个versions
带有自动递增 ID的表;一project_id
列和一time
列。每个表也将获得一version_id
列。每当更新项目时,都会在versions
. 然后,当表被更新时,version_id
也会被输入。这意味着有关项目的最新行project_images
可能是 3,而最新版本project_contacts
可能是 27。
由于version_id
是递增的,因此获取单个项目的最新版本非常简单,因为您可以按最高version_id
.
这个想法对我来说似乎失败的地方是,如果我想从特定日期获取项目的版本。
我可以使用我当前的解决方案来解决这个问题吗?