連載:NerdDinnerチュートリアル

NerdDinnerステップ2:データベースの作成

Scott Guthrie 著/Chica
2009/05/29

 本記事は、Microsoftの本社副社長であり、ASP.NETやSilverlightなどの開発チームを率いるScott Guthrie氏が公開している「NerdDinner Tutorial」を翻訳したものです。氏の許可を得て転載しています。

[これは無償の“NerdDinner”アプリケーション・チュートリアルのステップ2で、ASP.NET MVCを使用して、小さいながらも完全なWebアプリケーションを構築する手順を紹介しています。]

 NerdDinnerアプリケーションに関する夕食会やRSVPのすべてのデータの保存には、データベースを使用します。

 以下の手順では、無償のSQL Server Express Edition(これは、Microsoft Webプラットフォーム・インストーラーのV2を使用して簡単にインストールできます)を使用して、データベースを作成する方法を示します。これから書くすべてのコードは、SQL Server Expressおよび完全版のSQL Serverの両方で動作します。

SQL Server Expressデータベースを新規作成

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


図1

 これにより、Visual Studioの“新しい項目の追加”ダイアログがポップアップします。“データ”カテゴリで絞って、“SQL Serverデータベース”項目のテンプレートを選択します。


図2

 作成するSQL Server Expressデータベースの名前を“NerdDinner.mdf”にして、追加をクリックします。そうすると、Visual Studioはこのファイルを\App_Dataディレクトリ(読み書きできる権限のACLがすでに付与されたディレクトリです)に追加するかどうかを聞いてきます。


図3

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


図4

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

 新しい空のデータベースができたので、そこへいくつかテーブルを追加しましょう。

 これを行うには、Visual Studioで“サーバ エクスプローラ”タブのウィンドウを表示させます。これにより、データベースやサーバを管理できます。アプリケーションの\App_Dataフォルダに保存されたSQL Server Expressデータベースは、自動的にサーバ・エクスプローラに表示されます。オプションとして、“サーバ エクスプローラ”ウィンドウの上部にある“データベースへの接続”アイコンを使用し、さらにSQL Serverデータベース(ローカルとリモートの両方)を一覧に追加することもできます。


図5

 NerdDinnerデータベースに2つのテーブルを追加します。1つが夕食会を保存するもので、もう1つがそれらのRSVP承諾を追跡するものです。データベース内の“テーブル”フォルダ上で右クリックし、“新しいテーブルの追加”メニュー・コマンドを選択すると、テーブルを新規作成できます。


図6

 これによりテーブル・デザイナが開き、テーブルのスキーマを設定できます。“Dinners”テーブルには10個のデータ列を追加します。


図7

 “DinnerID”列は一意の主キーにします。これには“DinnerID”列上で右クリックし、“主キーの設定”メニュー項目を選択して設定できます。


図8

 DinnerIDを主キーにした後、“IDENTITY”列として設定し、新しいデータ行がテーブルに追加されると自動的に値が増えるようにします(つまり、最初に挿入される夕食会の行のDinnerIDは1になり、次に挿入される行のDinnerIDは2になるようにしたいということです)。

 これを行うには、“DinnerID”列を選択し、“列プロパティ”エディタを使用して、その列の“(Is Identity)”プロパティを“はい”に設定します。標準のIDENTITYデフォルト(1から開始して、新しい各Dinner行で1ずつ増加)を使用します。


図9

 [Ctrl]+[S]キーをタイプするか、[ファイル]−[保存]メニュー・コマンドで保存します。これによりテーブルに名前を付けるためのプロンプトがポップアップするので、“Dinners”という名前を付けます。


図10

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

 次に、上記の手順を繰り返して、“RSVP”テーブルを作成します。RsvpID列を主キーに設定し、これもIDENTITY列にします。


図11

 それを“RSVP”という名前で保存します。

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

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

 これを行うためにサーバ・エクスプローラでダブルクリックし、テーブル・デザイナでRSVPテーブルを開きます。その中で、“DinnerID”を選択して右クリックし、“リレーションシップ”というコンテキスト・メニュー・コマンドを選択します。


図12

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


図13

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


図14

 “...”ボタンをクリックすると、別のダイアログがポップアップし、そのリレーションシップに関連するテーブルと列を指定することができ、そのリレーションシップに名前を付けることができます。

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


図15

 今後、RSVPテーブルの各行はDinnerテーブルの行と関連付けられます。SQL Serverは参照整合性を保つために、有効なDinner行を指していない新しいRSVP行は追加できなくなります。またRSVP行が参照しているDinner行は削除できなくなります。

テーブルへデータを追加

 Dinnersテーブルにいくつかサンプル・データを追加して終わりにしましょう。サーバ・エクスプローラでデータを追加するテーブルを右クリックし、“テーブル データの表示”コマンドを選択します。


図16

 後でアプリケーションの実装を開始するときに使用できるよう、Dinnerデータを数行追加します。


図17

次のステップ

 データベースの作成が完了しました。それでは、それを検索および更新するために使用するモデル・クラスの作成を行いましょう。

[注:NerdDinnerアプリケーションの完成版はhttp://nerddinner.codeplex.comからダウンロードできます。] End of Article

 
インデックス・ページヘ  「NerdDinnerチュートリアル」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間