1

こんにちは、

私は現在、.Netで記述され、データの永続性/ストレージにEntityFrameworkを使用している新しいプロジェクトの非常に初期の段階にあります。必要な機能の1つは、特定のモデルタイプを「バージョン管理」する機能です。たとえば、1つのモデルは1つの「要件」であり、n個の「要件バージョン」があり、基本的にその特定の「要件」インスタンスの履歴/ライフサイクルに戻る方法があります。すべてのリビジョンで静的でなければならない唯一のものは「ID」であり、他のすべては要件の存続期間を通じて完全に変更可能です。

ここで、Qは、「単に」Requirement >> RequirementVersion間に1:nの関係を作成する必要がありますか?その他の機能として必要なのは、古い状態を現在/最新の状態に完全に復活させる可能性、マイナーバージョンとメジャーバージョン(変更)などを備えた機能、そして最後に、「ベースライン」を作成する機能が必要です。後でその特定のベースラインに戻り、含まれているすべてのRequirementVersionsを表示するための、最新バージョンの要件のコレクション?

これは、数百万の要件レコードにスケールアップする必要があり、それぞれに数千のリビジョンがあります。これが特に私が求めている理由です。単純な1:n関係のスケーリングの側面など。

誰かが似たようなことをしたことがありますか、バージョン管理/ベースラインなどに関するいくつかの提案/ベストプラクティスなどがありますか?

乾杯&ありがとう、-Jörg

4

1 に答える 1

0

これは、各要件に含まれるデータの量によって異なります。

要件に大きなフィールドがある場合(要件の説明など)。

  1. 要件自体ではなく、代わりにフィールドをバージョン管理することをお勧めします。残念ながら、EntityFrameworkを処理する簡単な方法はないようです。
  2. 他の解決策(CMSに対してこれを行いました)は、要件と要件の説明に別々のテーブルを用意することです。その結果、RequirementVersionsとRequirmentDescriptionVersionsが作成されます。

Requirementが十分に小さい場合は、Requirement>>RequirementVersionを使用できます。ほとんどの場合、データが大幅に増加することはありません。特に、SQL2008圧縮を利用できます。

于 2009-07-19T15:24:56.437 に答える