我一直在寻找各种数据库结构来完成我想要实现的任务,但似乎我的想法存在缺陷。我首先查看了wiki的数据库,但对于我想做的事情似乎有点复杂,然后我看到这看起来更接近我想要做的事情。
我正在考虑拥有一张能够保留最终形式的表格和一张额外的表格,以便保留所有修订/历史记录。我不确定这会不会太多。虽然我不确定上面的例子是否使用这种方法。
答案 0 :(得分:-1)
我做过类似的事情 - 一个数据库表,能够分叉多个修订版和无限制的撤销功能,而不会减慢数据库速度。我使用了一个额外的表来跟踪"更改向量"。每个更改都可以撤消。
有几种类型的交易,因此您的更改表必须跟踪。例如,简单的就是价值变化。您可以记录位置(唯一ID和列名称)以及更改前后的值。在撤消期间,将恢复先前的值。
最昂贵的变化是添加或删除色谱柱。如果您不想拥有过多的longtext / longblob列,则可以使用外部存储。像mongodb这样的nosql数据库适合这种用途。
希望这有助于您入门。