データベースの作成

提供元: Microsoft

PDF のダウンロード

これは、ASP.NET MVC 1 を使用して小規模で完全な Web アプリケーションを構築する方法を説明する無料の "NerdDinner" アプリケーション チュートリアルの手順 2 です。

手順 2 では、NerdDinner アプリケーションのすべてのディナー データと RSVP データを保持するデータベースを作成する手順を示します。

ASP.NET MVC 3 を使用している場合は、MVC 3 の概要または MVC Music Store に関するチュートリアルに従うことをお勧めします。

NerdDinner 手順 2: データベースの作成

データベースを使用して、NerdDinner アプリケーションのすべてのディナーおよび RSVP データを格納します。

下の手順では、無料の SQL Server Express エディション (Microsoft Web Platform Installer の V2 を使用して簡単にインストールできます) を使用してデータベースを作成する方法を示します。 記述するすべてのコードは、SQL Server Express と完全な SQL Server の両方で動作します。

新しい SQL Server Express データベースの作成

まず、Web プロジェクトを右クリックし、[追加] -> [新しい項目] メニュー コマンドを選択します。

Screenshot of the Solution Explorer dialog. Add is selected and New Item is highlighted.

これにより、Visual Studio の [新しい項目の追加] ダイアログが表示されます。 [データ] カテゴリでフィルター処理し、[SQL Server データベース] 項目テンプレートを選択します。

Screenshot of the Visual Studio Add New Item dialog. S Q L Server database is highlighted. Data is highlighted.

作成する SQL Server Express データベースに "NerdDinner.mdf" という名前を付けて、[OK] をクリックします。 その後、Visual Studio にこのファイルを \App_Data ディレクトリ (既に読み取りと書き込みの両方のセキュリティ ACL で設定されているディレクトリ) に追加するかどうかを確認するメッセージが表示されます。

Screenshot of the Microsoft Visual Studio dialog. Yes is highlighted.

[はい] をクリックすると、新しいデータベースが作成され、ソリューション エクスプローラーに追加されます。

Screenshot of the Solution Explorer navigation tree. Nerd Dinner dot m d f is highlighted and selected.

データベース内にテーブルを作成する

これで、新しい空のデータベースが作成されました。 いくつかのテーブルを追加してみましょう。

これを行うには、Visual Studio 内の [サーバー エクスプローラー] タブ ウィンドウに移動します。これにより、データベースとサーバーを管理できます。 アプリケーションの \App_Data フォルダーに格納されている SQL Server Express データベースが、サーバー エクスプローラー内に自動的に表示されます。 必要に応じて、[サーバー エクスプローラー] ウィンドウの上部にある [データベースへの接続] アイコンを使用して、SQL Server データベース (ローカルとリモートの両方) を一覧に追加することもできます。

Screenshot of the Server Explorer navigation tree. Data connections is expanded and Nerd Dinner dot m d f is highlighted.

NerdDinner データベースに 2 つのテーブルを追加します。1 つはディナーを格納し、もう 1 つは RSVP の受け入れを追跡します。 新しいテーブルを作成するには、データベース内の [テーブル] フォルダーを右クリックし、[新しいテーブルの追加] メニュー コマンドを選択します。

Screenshot of the Server Explorer navigation tree. Tables is expanded and highlighted. Add New Table is highlighted.

これにより、テーブルのスキーマを構成できるテーブル デザイナーが開きます。 "Dinners" テーブルには、10 列のデータを追加します。

Screenshot of the Nerd Dinner dialog box. The schema of the table is shown.

"DinnerID" 列をテーブルの一意の主キーにします。 これを構成するには、[DinnerID] 列を右クリックし、[主キーの設定] メニュー項目を選択します。

Screenshot of the Dinner ID menu items. The Set Primary Key menu item is highlighted.

DinnerID を主キーにするだけでなく、テーブルにデータの新しい行が追加されるときに値が自動的にインクリメントされる "ID" 列としても構成します (つまり、最初に挿入された Dinner 行の DinnerID は 1 になり、2 番目に挿入された行の DinnerID は 2 になります)。

これを行うには、[DinnerID] 列を選択し、[列のプロパティ] エディターを使用して、列の [(ID である)] プロパティを [はい] に設定します。 標準 ID の既定値を使用します (1 から開始し、新しい Dinner 行ごとに 1 ずつインクリメントします)。

Screenshot of the Column Properties tab. Identity Specification is highlighted.

次に、Ctrl キーを押しながら S キーを押すか、[ファイル] -> [保存] メニュー コマンドを使用して、テーブルを保存します。 これにより、テーブルに名前を付けるダイアログが表示されます。 "Dinners" という名前を付けます。

Screenshot of the Choose Name dialog. Dinners is written in the Enter a name for the table box.

その後、新しい Dinners テーブルがサーバー エクスプローラーのデータベース内に表示されます。

その後、上記の手順を繰り返し、"RSVP" テーブルを作成します。 このテーブルには 3 つの列があります。 RsvpID 列を主キーとして設定し、これも ID 列にします。

Screenshot of the Nerd Dinner dialog. R S V P I D is highlighted in the Column name category.

保存し、"RSVP" という名前を付けます。

テーブル間の外部キー リレーションシップの設定

データベース内に 2 つのテーブルが作成されました。 最後のスキーマ設計手順では、これら 2 つのテーブル間に "一対多" のリレーションシップを設定します。これにより、各 Dinner 行を、それに適用される 0 個以上の RSVP 行に関連付けることができます。 これを行うには、RSVP テーブルの "DinnerID" 列が、"Dinners" テーブルの "DinnerID" 列と外部キー リレーションシップを持つように構成します。

これを行うには、サーバー エクスプローラーで RSVP テーブルをダブルクリックして、テーブル デザイナー内で開きます。 次に、その中の "DinnerID" 列を選択し、右クリックして [リレーションシップ] コンテキスト メニュー コマンドを選択します。

Screenshot of the Dinner I D menu items. Relationships is highlighted.

これにより、テーブル間のリレーションシップを設定するために使用できるダイアログが表示されます。

Screenshot of the Foreign Key Relationships dialog box.

[追加] ボタンをクリックして、ダイアログに新しいリレーションシップを追加します。 リレーションシップが追加されたら、ダイアログの右側のプロパティ グリッド内の [テーブルと列の指定] ツリー ビュー ノードを展開し、その右の [...] ボタンをクリックします。

Screenshot of the Foreign Key Relationships dialog box. Tables and Columns Specifications is highlighted. An arrow is pointing to the elipses button to the right of it.

[...] ボタンをクリックすると、リレーションシップに関係するテーブルと列を指定したり、リレーションシップに名前を付けたりできる別のダイアログが表示されます。

主キー テーブルを "Dinners" に変更し、Dinners テーブル内の "DinnerID" 列を主キーとして選択します。 RSVP テーブルは外部キー テーブルとなり、RSVP.DinnerID 列が外部キーとして関連付けられます。

Screenshot of the Tables and Columns dialog. Primary Key Table and Foreign key table are highlighted.

これで、RSVP テーブルの各行が Dinner テーブルの行に関連付けられます。 SQL Server により参照整合性が維持され、有効な Dinner 行を指していない場合は、新しい RSVP 行を追加できなくなります。 また、それを参照する RSVP 行がまだ存在する場合、Dinner 行を削除することもできなくなります。

テーブルへのデータの追加

最後に、Dinners テーブルにサンプル データを追加します。 サーバー エクスプローラー内でデータを右クリックし、[テーブル データの表示] コマンドを選択することで、テーブルにデータを追加できます。

Screenshot of Server Explorer. Show Table Data is highlighted.

後でアプリケーションの実装を開始する場合に使用できるディナー データの行をいくつか追加します。

Screenshot of the Dinner data within Microsoft Visual Studio.

次の手順

データベースの作成が完了しました。 次に、クエリと更新に使用できるモデル クラスを作成してみましょう。