database-design - 用于存储编辑历史的数据库模式

标签 database-design schema history edit

我正在设计一个系统,其中包含对用户帖子所做的编辑历史记录。我预计我的用户发布的帖子中大约有 1/3 包含某种编辑。其中大多数只有少数几个版本。达到两位数将非常罕见。

在数据库中表示此数据的最佳模式是什么?我应该有哪些表,它们应该存储什么?

最佳答案

我设想的模式是有一个 Posts 表和一个 History 表。当某人第一次发布他们的初始帖子时,它只会进入 Posts 表。然后,如果他们或其他用户稍后编辑帖子,则会在历史表中创建两个条目:一个用于原始版本,第二个用于编辑后的版本。同样,Posts 表将使用最新信息进行更新。额外的编辑将在历史表中生成一个新条目,并更新帖子表。

我看到的一个问题是当前版本最终在两个表中都是重复的,但我认为将用户与其编辑相关联的简便性使这一点值得。

关于database-design - 用于存储编辑历史的数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3689366/

相关文章:

algorithm - 如何实现高效的连续单词搜索?

数据库架构问题

eclipse - 如何清除 Eclipse 中的搜索历史?

javascript - IE11 window.history.pushState "Object doesn' t 支持属性或方法 'pushState'

mysql - 指向不同表的外键

mysql - 存储大型 session 级数据集?

mysql - 数据库反规范化机会

apache-spark - 如何为元组列表创建 PySpark 模式?

java - 在 Java 中更新 BigQuery 架构/添加新列

c - "streams"在C中被称为FILE的历史原因是什么