• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии
  • Все
  • Новости
  • События
  • Статьи
  • Блоги

NerdDinner. Шаг 2: Создание базы данных

NerdDinner. Шаг 2: Создание базы данных

Jeje
13.07.2010 14:32

Это второй шаг бесплатного руководства «NerdDinner», которое показывает, как построить маленькое, но полноценное веб-приложение, используя ASP.NET MVC.

Мы будем использовать базу данных, для хранения информации о Dinner и RSVP , для нашего NerdDinner приложения.

Ниже представлены шаги создания базы данных, используя бесплатную версию SQL Server Express, которую можно легко поставить через Microsoft Web Platform Installer. Весь код, который мы напишем, работает как под SQL Server Express, так и под полной версией SQL Server.

Создание новой SQL Server Express базы данных

Мы начнем с нажатия правой кнопкой на нашем проекте в панели “Solution Explorer” и выберем Add>New Item:

clip_image001

В окне «Add New Item» отфильтруем по категории «Data» и выберем “SQL Server Database”:

clip_image002

Мы назовем базу данных «NerdDinner.mdf». Visual Studio спросит нас, хотим ли мы добавить данный файл в директорию \App_Data, которая уже создана с правами чтения и записи в ACL.

clip_image003

Мы конечно согласимся, и наша новая база будет создана и добавлена в Solution Explorer:

clip_image004

Создаем таблицы в базе данных

Теперь у нас есть пустая база данных. Давайте же создадим несколько таблиц.

Для этого, переместитесь в закладку «Solution Explorer», которая позволяет нам управлять базами данных и серверами. База SQL Server Express, хранящаяся в папке \App_Data , автоматически появится в списке Server Explorer. Мы можем воспользоваться и “Connect to Database” для подключения к локальным или удаленным базам:

clip_image005

Мы добавим две таблицы в нашу базу NerdDinner: одну для хранения ужинов, вторую для отслеживания RSVP одобрений. Мы можем создать новую таблицу, нажав правой кнопкой на папку «Tables»в нашей базе данных и выбрав пункт «Add New Table»:

clip_image006

Данное действие приведет к открытию конструктор для настройки схемы нашей таблицы. Для таблицы «Dinners» мы добавим 10 колонок:

clip_image007

Мы хотим, чтобы колонка «DinnerID» была уникальным первичным ключем для таблицы. Настроить это можно, нажав правой кнопкой по колонке «DinnerID» и выбрав пункт «Set Primary Key»:

clip_image008

Вдобавок, делая DinnerID первичным ключём, мы также хотим настроить его как «identity» колонку, чье значение автоматически увеличивается с добавлением новой строчки в таблице.

Выбрав «DinnerID» и далее, используя редактор «Column Properties», установить свойству «(Is Identity)» - “Yes”. Мы будем использовать стандартные настройки identity (начинать с 1, увеличивать на 1 с каждой новой строчкой в Dinner):

clip_image009

Далее сохраним нашу таблицу, нажав Ctrl+S или File>Save. От нас потребуется только ввести имя новой таблицы – «Dinners»:

clip_image010

Новая таблица Dinners готова и теперь отображается в списке Tables в Server Explorer нашей базы данных.

Проделаем те же шаги для создания таблицы «RSVP». Эта таблица будет состоять их 3 колонок. Установим колонку RsvpID, как первичный ключ, а также сделаем из него indetity колонку:

clip_image011

Сохраним таблицу с именем «RSVP».

Настройка внешних ключей между таблицами

У нас уже есть две таблицы в нашей базе данных. Наш последний шаг в проектировании будет создать связь «один-ко-многим» между двумя таблицами, чтобы мы могли связывать каждую строчку таблицы Dinner с 0 или более строчек таблицы RSVP. Сделаем мы это, задав колонке “DinnerID” таблицы RSVP связь через внешний ключ с колонкой «DinnerID» таблицы “Dinners”.

Для этого откроем таблицу RSVP в конструкторе таблиц двойным нажатием в Server Explorer. Далее выберем правой кнопкой колонку «DinnerID» и пункт “Relationships…”:

clip_image012

Появится окно, которое используется для настройки связей между таблицами:

 

Нажмем на “Add” и добавим новую связь. После добавления связи мы раскроем ветвь дерева «Tables and Column Specification» в правой части окна и нажмем на копке «…»:

clip_image013

В появившемся окне, мы сможем указать таблицу и колонку, которая участвует в связи, также позволяя задать для нее имя:

clip_image014

В итоге, каждая строчка таблицы RSVP будет связана со строчкой таблицы Dinner. SQL Server будет сохранять ссылочную целостность для нас и препятствовать в добавлении новой RSVP строки, если она не указывает на существующую строку таблицы Dinner. Он будет также препятствовать удалению строки с таблицы Dinner, если существуют ссылающиеся на нее строки с таблицы RSVP.

Наполнение данными наши таблицы

Давайте закончим этот шаг добавлением данных в таблицу Dinners. Для этого, нажимаем правой кнопкой по таблице в Server Explorer и выбираем пункт “Show Table Data”:

clip_image015

Мы добавим несколько строк для дальнейшего использования, как только начнем реализацию приложения:

clip_image016

Следующий шаг

Мы закончили создавать нашу базу данных. Теперь давайте создадим классы моделей, которые можно использовать для запросов и обновлений.

Jeje
13.07.2010 14:32
Комментариев:2 RSS Просмотров:1114
Теги: asp.net mvc, sql
metla2
13.07.2010 20:09
А нет возможности каждый день выкладывать новую часть? Очень хочется почитать.
Ссылка
Jeje
13.07.2010 20:22
Так и есть, на выходных просто перерыв был. Каждый день будет новая часть
Родитель | Ссылка

Евгений Жарков

Jeje
  • Блог

Облако тегов

android apple archos asp.net asp.net mvc asus bing cloud courier dallas delphi excel express facebook firefox flash games google hp htc ie9 iis imagine cup intel ipad iphone ironpython ironruby kinect lenovo live mac mef microsoft mono natal nokia office office 2010 palm razor silverlight spconf sql sql server tablet teched toshiba ukraine view-engine visual studio webos windows windows live wp7 yahoo yandex zune глонасс одноклассники

Записи

Популярные
  • diverofdark > C#: Expression Tree + Extension Method + Lambda как замена Safe Navigation Operator
  • sashaeve > Интересные возможности C# и ASP.NET
  • trukhinyuri > О чтении технической литературы в pdf на английском
  • snoralip > Обработка структурированн­ого текста с помощью регулярных выражений
  • Dmitryk > Парадигма генерации и обработки исключений
  • snoralip > Применение хеш-функций, SHA1, GetHashCode, HashSet и Dictionary
  • mvcdev > Говорящий PowerShell скрипт
  • mbakirov > I am back.
  • ][tiger > Singleton in .NET 4.0 - вопрос снят?
  • SergeyT. > [Перевод] Джозеф Албахари. Работа с потоками в C#. Часть 3
Все популярные записи
Обсуждаемые
  • mbakirov > I am back.
  • trukhinyuri > О чтении технической литературы в pdf на английском
  • diverofdark > C#: Expression Tree + Extension Method + Lambda как замена Safe Navigation Operator
  • NetGuru > Определение имени текущего пользователя SharePoint
  • snoralip > Применение хеш-функций, SHA1, GetHashCode, HashSet и Dictionary
  • Dmitryk > Парадигма генерации и обработки исключений
  • NetGuru > Строка подключения к БД.
  • Soldata > Преобразование даты в строку типа "вчера; сегодня; завтра" с помощью метода расширения
  • NetGuru > Extension methods – «методы-расшири­тели»:
  • trukhinyuri > Группы в Windows Live Messenger
Все обсуждаемые записи

Блоги

Новые
  • sharok> Round Angle .NET
  • Regfor> Блог
  • NetGuru> Kurakin Vit's Blog
  • Andrey> Андрей Веселов
  • danverPD> podzyubanBlogs
  • Stanislav Gornakov> Stanislav Gornakov
  • k0stya> k0stya
  • ][tiger> Just do IT - просто дует
  • Oxozle> KLUBS
  • mvcdev> WebDev
Обсуждаемые
  • mihailik> Олег Михайлик
  • ceo> Нотатник Вiктора Шатохiна [MSFT]
  • gaidar> Gaidar Magdanurov
  • MikhailChernomo­rdikov> Mikhail Chernomordikov [MSFT]
  • Alexander Lozhechkin [MSFT]> Alexander Lozhechkin
  • agladkik> Andrey Gladkikh: Microsoft Dynamics
  • sergun> Sergey Zwezdin
  • beerbong> Bong Blog
  • sos> Dmitry Soshnikov [MSFT]
  • not-a-kernel-gu­y> Зеркало: Not a kernel guy
О сайте   Свяжитесь с нами   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru