建立資料庫
由 Microsoft 提供
這是免費的 "NerdDinner" 應用程式教學課程的第 2 個步驟,詳細介紹了如何使用 ASP.NET MVC 1 建置一個小型但完整的 Web 應用程式。
步驟 2 示範為 NerdDinner 應用程式建立保存所有 Dinner 和回覆資料的資料庫的步驟。
如果使用 ASP.NET MVC 3,建議遵循 MVC 3 使用者入門或 MVC Music 市集教學課程。
NerdDinner 步驟 2:建立資料庫
我們將使用資料庫來儲存 NerdDinner 應用程式的所有 Dinner 和回覆資料。
下列步驟示範使用免費的 SQL Server Express 版本建立資料庫 (您可以使用 Microsoft Web Platform Installer 的 V2 輕鬆安裝)。 我們將撰寫的所有程式碼,都適用於 SQL Server Express 和完整的 SQL Server。
建立新的 SQL Server Express 資料庫
我們將從以滑鼠右鍵按一下 Web 專案開始,然後選取新增 -> 新項目功能表命令:
這會顯示 Visual Studio 的 [新增新項目] 對話方塊。 我們將依 [資料] 類別進行篩選,然後選取 [SQL 伺服器資料庫] 項目範本:
我們會將要建立的 SQL Server Express 資料庫命名為 "NerdDinner.mdf",然後按 [確定]。 Visual Studio 接著會詢問我們是否要將此檔案新增至 \App_Data 目錄 (這是已設定具有讀取和寫入安全性 ACL 的目錄):
我們將按一下 [是],並建立新的資料庫和新增至 [方案總管]:
在我們的資料庫中建立資料表
我們現在有新的空白資料庫。 讓我們將一些資料表新增至其中。
方式為,瀏覽 Visual Studio 內的 [伺服器總管] 索引標籤視窗,以管理資料庫和伺服器。 儲存在應用程式 \App_Data 資料夾中的 SQL Server Express 資料庫會自動顯示在 [伺服器總管] 內。 我們可以選擇性地使用 [伺服器總管] 視窗頂端的 [連接到資料庫] 圖示,將其他 SQL Server 資料庫 (本機和遠端) 新增至清單:
我們會將兩個資料表新增至 NerdDinner 資料庫,一個用來儲存 Dinners,另一個用來追蹤對它們的回覆接受情况。 我們可以使用滑鼠右鍵按一下資料庫內的 [資料表] 資料夾,然後選擇 [新增新資料表] 功能表命令,以建立新的資料表:
這會開啟資料表設計工具,讓我們設定資料表的結構描述。 針對 "Dinners" 資料表,我們將新增 10 個資料行:
我們希望 "DinnerID" 資料行成為資料表的唯一主索引鍵。 我們可以在 "DinnerID" 資料行上按一下滑鼠右鍵,然後選擇 [設定主索引鍵] 功能表項目來設定這個:
除了讓 DinnerID 成為主索引鍵之外,我們也想要將它設定為 [識別] 資料行,其值會自動遞增,因為新的資料列會新增到資料表中 (這意味著第一個插入的 Dinner 資料列的 DinnerID 為 1,第二個插入資料列的 DiningID 為 2,以此類推)。
我們可以選取 [DinnerID] 資料行,然後使用 [資料行屬性] 編輯器,將資料行上的 “(Is Identity)” 屬性設定為 [是]。 我們將使用標準識身分識別預設 (從 1 開始,並在每個新的 Dinner 資料列上遞增 1):
接著,我們會輸入 Ctrl-S 或使用檔案 -> 儲存功能表命令來儲存資料表。 這將會提示我們命名資料表。 我們會將其命名為 "Dinners":
然後,我們的新 Dinners 資料表會顯示在伺服器總管中的資料庫中。
然後,我們將重複上述步驟,並建立 [回覆] 資料表。 此資料表有 3 個資料行。 我們將 RsvpID 資料行設定為主索引鍵,並使其成為識別資料行:
我們會儲存它,並命名為 [回覆]。
設定資料表之間的外部索引鍵關聯性
現在資料庫中有兩個資料表。 我們最後一個結構描述設計步驟是設定這兩個資料表之間的「一對多」關聯性,以便我們將每個 Dinner 資料列與套用至該資料表的零個或多個回覆資料列產生關聯。 若要執行此動作,我們會將回覆資料表的 [DinnerID] 資料行,設定為與 [Dinners] 資料表中的 [DinnerID] 資料行有外部索引鍵關聯性。
方式為,按兩下伺服器總管中的回覆資料表,在資料表設計工具中將其開啟。 然後,我們將選取其中 "DinnerID" 資料行,以滑鼠右鍵按一下,然後選擇 [關聯性...] 內容功能表命令:
這會顯示一個對話方塊,可用來設定資料表之間的關聯性:
我們將按一下 [新增] 按鈕,將新的關聯性新增至對話方塊。 新增關聯性之後,我們會在對話方塊右側的屬性方格中展開 [資料表和資料行規格] 樹狀結構檢視節點,然後按一下其右側的 [...] 按鈕:
按一下 [...] 按鈕將會顯示另一個對話方塊,允許我們指定關聯性中涉及哪些資料表和資料行,以及允許我們命名關聯性。
我們會將 [主索引鍵資料表] 變更為 [Dinners],然後選取 Dinners 資料表內的 [DinnerID] 資料行作為主索引鍵。 我們的回覆資料表將會是外部索引鍵資料表,而 RSVP.DinnerID 資料行將會將作為外索引鍵關聯:
現在,回覆資料表中的每個資料列都會與 Dinner 資料表中的資料列相關聯。 如果 SQL Server 未指向有效的 Dinner 資料列,SQL Server 將會維護引用完整性,並防止我們新增回覆資料列。 如果仍有回覆資料列參考 Dinner 資料列,它也會阻止我們刪除該資料列。
將資料新增至資料表
讓我們在 Dinners 資料表中新增一些範例資料來完成。 我們可以在 [伺服器總管] 內以滑鼠右鍵按一下資料表,然後選擇 [顯示資料表資料] 命令,以將資料新增至資料表:
我們將在開始實作應用程式時,新增幾個資料列的 Dinner 資料,以供稍後使用:
後續步驟
我們已完成建立資料庫。 現在讓我們建立可用於查詢和更新它的模型類別。