支持SQL上的转移

支持SQL上的转移,sql,database-design,Sql,Database Design,我正在设计一个数据库,我希望它可以支持多个版本 换句话说,如果我有一个对象信息,它可以在一个版本上有一个值,在另一个版本上有另一个值。 我希望能够创建一个新版本:这意味着所有与旧版本相关的信息都应该与当前版本相关,但是如果新版本上有更改,就会有旧版本的记录 我在考虑为所有我想添加“版本控制”的表添加另一列version, 但这会使每个版本的表内容增加一倍。一种经过时间考验的方法是使用StartDt和EndDt列。活动列是EndDt为null的列。更改电子邮件的人的示例: ID StartDt

我正在设计一个数据库,我希望它可以支持多个版本 换句话说,如果我有一个对象信息,它可以在一个版本上有一个值,在另一个版本上有另一个值。 我希望能够创建一个新版本:这意味着所有与旧版本相关的信息都应该与当前版本相关,但是如果新版本上有更改,就会有旧版本的记录

我在考虑为所有我想添加“版本控制”的表添加另一列version,
但这会使每个版本的表内容增加一倍。

一种经过时间考验的方法是使用StartDt和EndDt列。活动列是EndDt为
null
的列。更改电子邮件的人的示例:

ID   StartDt     EndDt        Name      Email
1    2011-01-01  2011-02-01   Joe       joe@hotmail.com
2    2011-02-01  2011-03-01   Joe       joe@yahoo.com
3    2011-03-01  null         Joe       joe@gmail.com

我同意。做吧!严肃地说:问题是什么?记录中有许多字段,因此无法跟踪更改。