Quora如何进行版本控制?数据库设计

6

我看到了一些插件可以创建版本表来跟踪特定模型的修改,但是不能像Quora那样轻松地完成。

更改Quora上的话题照片

我目前拥有的是这样一个表:

  • id
  • item_type: 指定模型修订引用的内容:"Topic"
  • item_id
  • event: 如果是:"edited, added, reverted, removed"
  • who: 触发事件的人
  • column: "Topic"中值已更改的列。"topic.photo_url"
  • new: 新值:http://s3.amazonaws.../pic.png
  • old: 旧值:"http://s3.amazonaws.../oldpic.png"
  • revision_rel: 指向过去的修订
  • timestamp

输入图像描述

有人能给我提供关于这种设计的帮助和指导吗?我担心性能、错误的列、缺失的列等问题。

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

你可能不再需要这个了……但是如果记录所有事件(创建、编辑、删除),您可能不需要存储旧值和新值。版本2的旧值是版本1的新值。这取决于您的用例。 - Pascal
1个回答

1

我稍后会编辑我的问题,说明这个插件不能满足我的需求。我想要按列进行版本控制,而不是整行。我稍后会更好地描述这个问题以及我的实现方式。但还是感谢你的回答。 - Luccas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接