2012-05-04 79 views
0

我在MySQL数据库中有一列,我希望将它的值的所有修订及其更改的日期一起存储。MySQL列值修订历史

在MySQL中是否有任何内置机制允许我这样做,或者有没有解决这个问题的推荐方法?

+0

使用更多列然后一个?也许有一个新表,并使用JOINs? –

回答

1

MySQL没有内置此功能。您需要自行实施,具体取决于您需要存储的内容。您可能会在持久性逻辑中引入一个图层,将您需要的日志数据插入到单独的历史记录表中。

根据您所做的更改量,请务必考虑清理策略,因为随着时间的推移这些历史记录可能会变得很大。

如果您正在讨论需要此类历史记录的多个表,则可以根据预期的总体变化量使用单个历史记录表和附加列来标识变更所属的表,或每个数据表单独的历史表。

另外,请看看可用的不同存储引擎。有一个压缩的Archive Storage Engine,一旦插入数据就不允许修改数据,并且还有其他限制,但其存储要求低于e。 G。 InnoDB的。它是为存档目的而设计的,并非专门用于查询,所以它可能会或可能不适合您。