数据库设计:在版本之间跟踪标签更改

4
我正在构建一个类似于Stack Overflow的修订系统,但有一件事情我无法理解,即如何处理多个修订版本之间标签的差异。最简单的方法是创建3个表:修订版本、标签和将两者关联起来的表。每个修订版本都有自己的标签集合,唯一的问题是,在显示所有修订版本时,即使它们没有更改,也需要重新比较标签以找出差异。也许可以添加一个或两个额外的字段来标记与上一个修订版本相比已添加或删除的标签。是否有更好的方法?
2个回答

4
不要过度复杂化你的模式,并且不要过早地进行优化。如果您将所有数据存储在内存中,则对修订标签进行逐对比较是一项非常便宜的操作,并且可以在准备视图模型时完成。

0

我会说你走在正确的轨道上

T1: 修订
|项目 ID|修订 ID|更多...|
T2: 标签 |标签 ID|标签字段...|
T3: 每个修订的标签 |项目 ID|修订 ID|标签 ID| /* 这将有多行,每个标签 1 行)*/

要查找标签差异,只需检索最后两个修订版本的标签,并使用您喜欢的哈希映射在任何语言中进行比较,或者以其他方式使用您的语言有效地实现集合差异。


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