我需要创建一个文章系统,其中不会删除任何文章。更重要的是,他们希望所有文章编辑,一旦保存原始文章,就可以创建新文章而不是覆盖旧文章。
所以,A 写了文章 1 并保存了它。 B 编辑文章 1。
组织此数据库的最佳方式是什么?我的想法是:
- 文章,
- 文章,
- 身份证,
- old_id(文章编辑前的id,方便用户“撤消”),
- 已删除( bool 值,如果删除它不会显示在系统中,除非用户查看“垃圾箱”),
- 标题,
- 文章,
- 创建(冗余?),
- 已更新(上次更新日期),
- user_id(最后更新文章的用户的 id)。
因此,当用户编辑一篇文章时,它会创建一条新的文章记录,但会保存旧的文章 ID 作为引用。
这是最好的方法还是有更有效的方法?
最佳答案
您可以让同一篇文章出现在同一个表中,但具有不同的 ID 值。您可以根据最高 ID 或通过设置 bool 值(例如“isActive”)来确定事件文章。
这类似于 SO 和维基百科处理修订历史的方式。
PK | ID | Title | Text | Edited | Edited By ----------------------------------------------------------------------------- 1 | 128 | History of Computin | The History of... | 2009/07/10 | Jon Sampson 2 | 128 | History of Computing | The History of... | 2009/07/11 | John Smith
在这种情况下,我可以看到第 128 条已被编辑。最新版本是 John Smith 的 #2。
关于mysql - 不删除数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1138235/