如何修改控制对quora有效?数据库设计

Luc*_*cas 6 version-control database-design ruby-on-rails relational-database

好吧,我已经看到一些插件来创建一个版本表来跟踪特定模型的修改,但是不能轻易地像quora节目一样

更改quora上的主题照片

到目前为止我所拥有的是这样一张桌子:

  • ID
  • item_type:指定模型修订引用的内容:"主题"
  • ITEM_ID
  • 事件:如果是:"编辑,添加,还原,删除"
  • :谁引发了这一事件
  • :"主题"中的哪一列值已更改." topic.photo_url "
  • :新值:" http://s3.amazonaws.../pic.png "
  • 老旧的价值:"" http://s3.amazonaws.../oldpic.png "
  • revision_rel:指向过去的修订版
  • 时间戳

在此输入图像描述

有人可以给我一些这方面的帮助和指导吗?我担心性能,错误的列,缺少列等

id  | item_type | item_id |  event  |    who    | column |   new      |    old     | revision_rel |  date
________________________________________________________________________________________________________
1   |   Topic   |    2    |  edit   |   Luccas  |  photo | pic.png    | oldpic.png |    null      |  m:d:y
2   |   Topic   |    2    |  revert |   Chris   |  photo | oldpic.png | pic.png    |      1       |  m:d:y
Run Code Online (Sandbox Code Playgroud)

Yla*_*n S 1

有一些可用的宝石已经可以满足您的需求。您是否调查过:

查看现有的 gem: https ://www.ruby-toolbox.com/categories/Active_Record_Versioning

我正在使用audited(以前的acts_as_audited)来进行非常类似的事情: https: //github.com/collectiveidea/audited