エンティティフレームワーク-データベースのセットアップ

このチュートリアルでは、単純な大学のデータベースを使用します。大学のデータベースは全体としてはるかに複雑になる可能性がありますが、デモと学習の目的で、このデータベースの最も単純な形式を使用しています。次の図には、3つのテーブルが含まれています。

  • Student
  • Course
  • Enrollment

データベースという用語が使用されるときはいつでも、1つのことが直接頭に浮かびます。それは、ある種の関係を持つ異なる種類のテーブルです。テーブル間の関係には3つのタイプがあり、異なるテーブル間の関係は、関連する列がどのように定義されているかによって異なります。

  • 1対多の関係
  • 多対多の関係
  • 1対1の関係

1対多の関係

1対多の関係は、最も一般的なタイプの関係です。このタイプの関係では、テーブルAの行にテーブルBの一致する行を多数含めることができますが、テーブルBの行にテーブルAの一致する行を1つだけ含めることができます。たとえば、上の図では、StudentテーブルとEnrollmentテーブルに1つの一致する行があります。 -to-manyの関係では、各学生は多くの登録を持っている可能性がありますが、各登録は1人の学生にのみ属します。

多対多の関係

多対多の関係では、テーブルAの行はテーブルBの多くの一致する行を持つことができ、その逆も可能です。このような関係を作成するには、ジャンクションテーブルと呼ばれる3番目のテーブルを定義します。このテーブルの主キーは、テーブルAとテーブルBの両方の外部キーで構成されます。たとえば、StudentテーブルとCourseテーブルには、次のように定義される多対多の関係があります。これらの各テーブルから登録テーブルへの1対多の関係。

1対1の関係

1対1の関係では、テーブルAの行にテーブルBの一致する行を1つだけ含めることができ、その逆も同様です。関連する両方の列が主キーであるか、一意の制約がある場合、1対1の関係が作成されます。

このように関連するほとんどの情報はオールインワンテーブルであるため、このタイプの関係は一般的ではありません。あなたは1対1の関係を使用するかもしれません-

  • 多くの列を持つテーブルを分割します。
  • セキュリティ上の理由から、テーブルの一部を分離します。
  • 有効期間が短く、テーブルを削除するだけで簡単に削除できるデータを保存します。
  • メインテーブルのサブセットにのみ適用される情報を格納します。