Tworzenie bazy danych
autor: Microsoft
Jest to krok 2 bezpłatnego samouczka aplikacji "NerdDinner" , który zawiera instrukcje dotyczące tworzenia małej, ale kompletnej aplikacji internetowej przy użyciu ASP.NET MVC 1.
Krok 2 przedstawia kroki tworzenia bazy danych zawierającej wszystkie dane kolacji i RSVP dla naszej aplikacji NerdDinner.
Jeśli używasz ASP.NET MVC 3, zalecamy skorzystanie z samouczków Wprowadzenie With MVC 3 lub MVC Music Store.
NerdDinner — Krok 2: Tworzenie bazy danych
Będziemy używać bazy danych do przechowywania wszystkich danych dinner i RSVP dla naszej aplikacji NerdDinner.
Poniższe kroki pokazują tworzenie bazy danych przy użyciu bezpłatnej wersji SQL Server Express (którą można łatwo zainstalować przy użyciu wersji 2 Instalator platformy Microsoft Web). Cały kod, który napiszemy, działa zarówno z SQL Server Express, jak i z pełną SQL Server.
Tworzenie nowej bazy danych SQL Server Express
Zaczniemy od kliknięcia prawym przyciskiem myszy projektu internetowego, a następnie wybrania polecenia menu Dodaj nowy> element :
Spowoduje to wyświetlenie okna dialogowego "Dodawanie nowego elementu" programu Visual Studio. Filtrujemy według kategorii "Dane" i wybierzemy szablon elementu "SQL Server Database":
Nadamy nazwę SQL Server Express bazie danych, którą chcemy utworzyć "NerdDinner.mdf" i trafimy ok. Program Visual Studio zapyta nas, czy chcemy dodać ten plik do katalogu \App_Data (który jest katalogiem, który jest już skonfigurowany przy użyciu list ACL zabezpieczeń odczytu i zapisu):
Klikniemy pozycję "Tak", a nasza nowa baza danych zostanie utworzona i dodana do naszej Eksplorator rozwiązań:
Tworzenie tabel w bazie danych
Mamy teraz nową pustą bazę danych. Dodajmy do niej tabele.
W tym celu przejdziemy do okna karty "Eksplorator serwera" w programie Visual Studio, co umożliwia zarządzanie bazami danych i serwerami. SQL Server Express bazy danych przechowywane w folderze \App_Data naszej aplikacji będą automatycznie wyświetlane w Eksploratorze serwera. Opcjonalnie można użyć ikony "Połącz z bazą danych" w górnej części okna "Eksplorator serwera", aby dodać dodatkowe bazy danych SQL Server (zarówno lokalne, jak i zdalne) do listy, jak również:
Dodamy dwie tabele do bazy danych NerdDinner — jedną do przechowywania naszych kolacji, a drugą do śledzenia akceptacji RSVP. Możemy utworzyć nowe tabele, klikając prawym przyciskiem myszy folder "Tabele" w naszej bazie danych i wybierając polecenie menu "Dodaj nową tabelę":
Spowoduje to otwarcie projektanta tabel, który umożliwia skonfigurowanie schematu tabeli. W naszej tabeli "Kolacje" dodamy 10 kolumn danych:
Chcemy, aby kolumna "DinnerID" byłaby unikatowym kluczem podstawowym dla tabeli. Możemy to skonfigurować, klikając prawym przyciskiem myszy kolumnę "DinnerID" i wybierając element menu "Ustaw klucz podstawowy":
Oprócz utworzenia identyfikatora DinnerID klucza podstawowego chcemy również skonfigurować go jako kolumnę "tożsamość", której wartość jest automatycznie zwiększana w miarę dodawania nowych wierszy danych do tabeli (co oznacza, że pierwszy wstawiony wiersz kolacji będzie miał wartość DinnerID 1, drugi wstawiony wiersz będzie miał identyfikator DinnerID 2 itd.).
Możemy to zrobić, wybierając kolumnę "DinnerID", a następnie używając edytora "Właściwości kolumny", aby ustawić właściwość "(Is Identity)" w kolumnie na wartość "Tak". Użyjemy wartości domyślnych standardowej tożsamości (zacznij od 1 do 1 i przyrostu 1 w każdym nowym wierszu kolacji):
Następnie zapiszemy naszą tabelę, wpisując klawisze Ctrl-S lub za pomocą polecenia menu File-Save>. Spowoduje to wyświetlenie monitu o nadenie tabeli nazwy. Nadamy mu nazwę "Dinners":
Nowa tabela Dinners zostanie wyświetlona w naszej bazie danych w Eksploratorze serwera.
Następnie powtórzymy powyższe kroki i utworzymy tabelę "RSVP". Ta tabela z 3 kolumnami. Skonfigurujemy kolumnę RsvpID jako klucz podstawowy, a także ustawimy ją jako kolumnę tożsamości:
Zapiszemy go i nadamy mu nazwę "RSVP".
Konfigurowanie relacji klucza obcego między tabelami
Teraz mamy dwie tabele w naszej bazie danych. Ostatnim krokiem projektowania schematu będzie skonfigurowanie relacji "jeden do wielu" między tymi dwiema tabelami, aby umożliwić skojarzenie każdego wiersza kolacji z co najmniej zerem wierszy RSVP, które mają do niego zastosowanie. W tym celu skonfigurujemy kolumnę "DinnerID" tabeli RSVP, aby mieć relację klucza obcego z kolumną "DinnerID" w tabeli "Dinners".
W tym celu otworzymy tabelę RSVP w projektancie tabel, klikając ją dwukrotnie w Eksploratorze serwera. Następnie wybierzemy w niej kolumnę "DinnerID", kliknij prawym przyciskiem myszy i wybierzemy pozycję "Relacje..." polecenie menu kontekstowego:
Spowoduje to wyświetlenie okna dialogowego, za pomocą którego można skonfigurować relacje między tabelami:
Kliknij przycisk "Dodaj", aby dodać nową relację do okna dialogowego. Po dodaniu relacji rozwiń węzeł widok drzewa "Tabele i specyfikacja kolumny" po prawej stronie okna dialogowego, a następnie kliknij przycisk "..." po prawej stronie:
Kliknięcie przycisku "..." Przycisk wyświetli kolejne okno dialogowe, które pozwala nam określić, które tabele i kolumny są zaangażowane w relację, a także pozwoli nam na nadenie relacji nazwy.
Zmienimy tabelę klucza podstawowego na "Obiady", a następnie wybierzemy kolumnę "DinnerID" w tabeli Dinners jako klucz podstawowy. Tabela RSVP będzie tabelą klucza obcego i rsVP. Kolumna DinnerID zostanie skojarzona jako klucz obcy:
Teraz każdy wiersz w tabeli RSVP będzie skojarzony z wierszem w tabeli Dinner. SQL Server zachowa integralność referencyjną — i uniemożliwi nam dodanie nowego wiersza RSVP, jeśli nie wskaże prawidłowego wiersza kolacji. Uniemożliwi to również usunięcie wiersza kolacji, jeśli nadal istnieją wiersze RSVP odwołujące się do niego.
Dodawanie danych do naszych tabel
Zakończmy, dodając przykładowe dane do tabeli Obiady. Możemy dodać dane do tabeli, klikając je prawym przyciskiem myszy w Eksploratorze serwera i wybierając polecenie "Pokaż dane tabeli":
Dodamy kilka wierszy danych obiadowych, których możemy użyć później podczas wdrażania aplikacji:
Następny krok
Zakończyliśmy tworzenie bazy danych. Teraz utwórzmy klasy modeli, których możemy użyć do wykonywania zapytań i aktualizowania.