1

2 年前、Entity Framework を使用して Web アプリケーションを作成しました。このアプリケーションでは、クライアントはクライアントのために行ったプロジェクトを追跡します。

現在、アプリケーションを更新して、いくつかの新しいプロジェクト タイプを追加したいと考えています。これらの新しいタイプには、保存する追加のデータがいくつかあります。

したがって、現時点では、プロジェクトのタイプ、開始日と終了日、説明などがデータベースに保存されています。しかし今、これらの新しい型にはいくつかの追加のプロパティが必要です。

現在のデータベースを拡張する最善の方法は何ですか?

これらの新しいプロパティは、プロジェクトが新しいタイプの 1 つである場合にのみ使用されます。既存のプロパティ (日付、説明など) はすべてのタイプで共有されます。

Entity Framework を使用する場合に考えられる解決策は何ですか?

編集: 追加のプロパティは、別のテーブルへの外部キーになります。例: タイプ A のプロジェクトには、画像が添付されます (別のテーブルに格納されます)。

4

1 に答える 1

1

基本的に、次の 2 つのいずれかを行うことができます。

(1)それらの新しいプロパティを保持する既存のテーブルにリンクされた新しいテーブルを作成します

また

(2)これらの新しいプロパティを既存のテーブルに追加するだけです (その場合、既存のプロジェクト タイプの値がないため、すべてが null 可能である必要があります)。

オプション #1は有益です。なぜなら、その新しい追加のテーブルでは、これらの新しい列を null 許容または null 非許容として定義できるからです (ビジネス ルールの必要に応じて)。ただし、これらの新しいプロジェクト タイプの場合、データが 2 つのテーブルに分割され、すべての情報を取得するためにこれらのテーブルを結合する必要があるという欠点があります。

使用している .NET のバージョン、つまり Entity Framework に応じて、古いプロジェクト タイプと新しいプロジェクト タイプを 1 つまたは 2 つのテーブルにマッピングすることで、おそらくその作業の多くを隠すことができます (このブログ投稿に示されているようなもの) 。 .

オプション #2は、より迅速で明白です。すべてのデータは、1 つの共通テーブルに保存されます。ただし、古いプロジェクト タイプには新しい値がないため、新しい列はすべて null 可能にする必要があります。これは、ビジネス要件にうまく適合しない可能性があります。

于 2013-09-14T12:47:06.243 に答える