2009-07-19 23 views
1

午後、バージョン管理されたエンティティのベストプラクティス?

私は現在、.NETで書かれた新しいプロジェクトの初期段階にあり、Entity Frameworkをデータの永続性/保存に使用しています。必要な機能の1つは、特定のモデルタイプを「バージョンアップ」する機能です。例えば。 1つのモデルは、基本的に特定の「要件」インスタンスの履歴/ライフサイクルに戻る方法を持つ「要件バージョン」を持つ「要件」です。すべてのリビジョンで静的でなければならないのは唯一のものですが、それは「ID」です。他のものはすべて、要件の生涯を通じて絶対に変更可能です。

Qは、「要件」と「要件」の間に1:nの関係を作成する必要がありますか?他の機能の必要性は、古い状態を最新/最新のものに完全に復活させる可能性、マイナーバージョンとメジャーバージョン(変更)を持つ能力がなければならないこと、そして最後に "ベースライン"を作成する能力特定のベースラインに後で戻って、含まれているRequirementVersionsをすべて表示する最新バージョンの要件のコレクション?

これは私が...簡単な1のスケーリング側面を求めていますなぜ...それは特にだそれらのそれぞれは、数千リビジョンを持つ、カップル百万要件レコードにスケールアップすることがあります。n個の関係など

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

乾杯&おかげで、 -Jörg

答えて

0

これは、各要件を持っているどのくらいのデータに依存します。

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

  1. 要件自体ではなく、代わりにフィールドをバージョンしたいと思うかもしれません。残念ながら、Entity Frameworkを扱う簡単な方法はないようです。
  2. その他のソリューション(CMSでこれを行いました)は、要件と要件説明のために別々のテーブルを持つことです。結果として、RequirementVersionsとRequirmentDescriptionVersionsが作成されます。

要件が十分に小さい場合は、要件>> RequirementVersionを使用できます。ほとんどの場合、重要なデータは増加せず、特にSQL2008圧縮を利用できます。

関連する問題