.net 版本化实体的最佳实践?

.net 版本化实体的最佳实践?,.net,versioning,revision,database-versioning,.net,Versioning,Revision,Database Versioning,下午好 我目前正处于一个用.Net编写并使用Entity Framework进行数据持久性/存储的新项目的早期阶段。所需功能之一是能够“版本化”某些型号。例如,一个模型就是一个“需求”,它将有n个“需求版本”,基本上可以追溯到特定“需求”实例的历史/生命周期中。在所有修订中唯一必须是静态的是它的“ID”,在需求的整个生命周期中,其他一切都是绝对可变的 现在问题是,我是否应该“简单地”在需求>>RequirementVersion之间创建1:n关系?需要的其他功能包括完全恢复旧状态成为当前/最新状

下午好

我目前正处于一个用.Net编写并使用Entity Framework进行数据持久性/存储的新项目的早期阶段。所需功能之一是能够“版本化”某些型号。例如,一个模型就是一个“需求”,它将有n个“需求版本”,基本上可以追溯到特定“需求”实例的历史/生命周期中。在所有修订中唯一必须是静态的是它的“ID”,在需求的整个生命周期中,其他一切都是绝对可变的

现在问题是,我是否应该“简单地”在需求>>RequirementVersion之间创建1:n关系?需要的其他功能包括完全恢复旧状态成为当前/最新状态的可能性,必须能够进行次要和主要版本(更改)等,最后但并非最不重要的一点是,能够使用最新版本在需求集合中创建“基线”,以便在以后的时间点返回到该特定基线,并显示所有包含的需求版本

这必须扩展到数百万个需求记录,每个记录都有几千个修订版。。这就是为什么我要问。。简单1:n关系的缩放方面等

是否有人做过类似的事情,可能还有一些关于版本控制/基线等的建议/最佳实践

干杯,谢谢,
-Jörg

这取决于每个需求有多少数据

如果需求有大字段(例如需求描述)

  • 您可能希望改为版本字段,而不是需求本身。不幸的是,似乎没有简单的方法来处理实体框架
  • 另一个解决方案(我们为CMS做的)是为需求和需求描述提供单独的表。因此,您将拥有RequirementVersions和RequirementDescriptionVersions
  • 如果需求足够小,您可以使用Requirement>>RequirementVersion。在大多数情况下,您不会有显著的数据增长,特别是您可以利用SQL2008压缩