連載:NerdDinnerチュートリアルNerdDinnerステップ2:データベースの作成Scott Guthrie 著/Chica 訳2009/05/29 |
|
|
[これは無償の“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からダウンロードできます。]
「NerdDinnerチュートリアル」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|