2009-07-19 144 views
1

下午好,版本實體的最佳實踐?

我目前處於一個用.Net編寫的新項目的早期階段,並且使用實體框架進行數據持久化/存儲。要求的功能之一是能夠「版本化」某些模型類型。例如。一個模型就是一個'需求',它將具有n個需求版本,基本上有一種方法可以回溯該特定'需求'實例的歷史/生命週期。唯一需要在所有修訂版本中保持靜態的是「ID」,在整個需求的整個生命週期中,其他一切都是絕對可變的。

現在問題是,我是否應該簡單地在需求>> RequirementVersion之間建立1:n的關係?其他功能需要的是可以完全復興舊狀態成爲當前/最新的狀態,必須有能力進行次要和主要版本(變化)等,最後但並非最不重要的是能夠創建一個「基線」一組最新版本的要求將在稍後的時間點返回到特定的基線並顯示所有包含的RequirementVersions?

這有可能擴展到幾百萬條記錄的要求,他們每個人有一對夫婦一千版本..這就是爲什麼特別我問..一個簡單的1縮放方面:N的關係等

有沒有人做過類似的東西,也許一些建議/最佳實踐等版本/基線等?

乾杯&感謝, -Jörg

回答

0

這取決於每個要求多少數據了。

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

  1. 您可能想版本字段,而不是要求本身。不幸的是,似乎沒有簡單的方法來處理實體框架。
  2. 其他解決方案(我們爲CMS做了這樣的工作)是爲Requirement和Requirement Description提供單獨的表格。因此,您將擁有RequirementVersions和RequirmentDescriptionVersions。

如果需求足夠小,可以使用Requirement >> RequirementVersion。在大多數情況下,你不會有重大的數據增長,特別是你可以利用SQL2008壓縮。