我有几张表,我想保留修订历史记录。什么是完成这个最好的方法?这将是几个领域(20左右)。保持与PHP和MySQL的修订历史记录
我应该创建一个重复的表并只提交旧数据吗?我应该使用触发器吗?或者我应该创建一个单独的表并只跟踪所做的更改?
我有几张表,我想保留修订历史记录。什么是完成这个最好的方法?这将是几个领域(20左右)。保持与PHP和MySQL的修订历史记录
我应该创建一个重复的表并只提交旧数据吗?我应该使用触发器吗?或者我应该创建一个单独的表并只跟踪所做的更改?
这里是我问了几个月前的问题,但我会做同样的方式再次
您可以在您的表格中添加另一列,用于跟踪入口ID,而主动PK则是修订ID。修订版本号最高的是最新的活动记录,具有相同入口标识的其他条目是以前的修订版本。
我打算这样做,但问题是有其他表链接到此表的主键。所以,如果我插入一个新行,关系就会中断。 – Keith
像Propel一些奥姆斯可以“原生地”处理这种经常需要。
它会自动添加一个版本列到 “版本” 表(比如MYTABLE),并创建一个mytable_version表(含肯定列mytable_id和版本)。
它提供了一个简单的API来查询版本化表。例如,当您执行$myobject->save();
时,它会自动填充表mytable_version并相应地更新字段mytable.version。
我们非常满意我们的选择,即对每个版本化的实体使用两个表。
表将类似于此:
表person
:
person_version
)表person_version
:
person
)正如person_version
条目永远不会改变,很容易对它们进行缓存(只要有不
你想你的版本可能会改变对表的任何引用)表或修改表中的数据? –