我一直在寻找各种数据库结构的任务,我试图实现,但似乎我的想法是有缺陷的。我首先查看了wiki的db,但对于我想做的事情似乎有点复杂,然后我看到这个看起来更接近于我正在尝试做的事情。我在考虑用一个表来保存最终的表单,另外一个表来保存所有的修订/历史记录。但我不确定这是否太过分了。虽然我不确定上面的例子是否使用了这种方法。
kfgdxczn1#
我也做过类似的事情——一个数据库表,它可以进行多次修改,并具有无限的撤消功能,而不会减慢数据库的速度。我使用了一个额外的表来跟踪“变化向量”。每次更改都可以撤消。有几种类型的事务,因此您的更改表必须保持跟踪。例如,一个简单的方法就是改变价值。记录位置(唯一id和列名)以及更改前后的值。在撤消过程中,将恢复以前的值。最昂贵的更改是添加或删除列。如果您不想拥有过多的longtext/longblob列,可以在这里使用外部存储。nosql数据库(如mongodb)适合此用途。希望这能帮你开始。
1条答案
按热度按时间kfgdxczn1#
我也做过类似的事情——一个数据库表,它可以进行多次修改,并具有无限的撤消功能,而不会减慢数据库的速度。我使用了一个额外的表来跟踪“变化向量”。每次更改都可以撤消。
有几种类型的事务,因此您的更改表必须保持跟踪。例如,一个简单的方法就是改变价值。记录位置(唯一id和列名)以及更改前后的值。在撤消过程中,将恢复以前的值。
最昂贵的更改是添加或删除列。如果您不想拥有过多的longtext/longblob列,可以在这里使用外部存储。nosql数据库(如mongodb)适合此用途。
希望这能帮你开始。