如何在数据库中模拟版本?

时间:2016-11-03 09:14:33

标签: database-design

我有一个实体,包含一些修复属性和一些应该版本化的变量属性。这导致数据库设计具有用于修复部分的表(表F)和用于版本化部分的表(表V)。

VF有多对一的关系(一个实体有许多版本)。 F与一个V具有一对一的关系,以指示当前版本。这导致我们的数据库中的循环依赖性使生活变得艰难。

我们更喜欢确保数据库级别数据一致性的解决方案(因此在V上设置currentversoin-flag无法解决问题,因为我们无法确保在发生故障时没有多个当前版本)。你有没有更好的方法可以在没有圈子的情况下模仿这个?

1 个答案:

答案 0 :(得分:0)

F中的引用移至V中的当前版本。根本不需要它。当前版本是最新版本。

以下是版本设计的一些“必备”功能:

  • 唯一的一个日期/时间值(没有FROM / TO日期对)
  • 没有单独的字段用于表示当前版本。
  • 创建新版本涉及编写一条记录。没有更新其他版本。
  • 外键引用与以往一样。
  • 使用一致且众所周知的标准模式(在这种情况下,模式为2nf)。

Here是一个更详细的答案。如果你认为它有希望,它还包含更多细节的链接。