Смекни!
smekni.com

Интернет-магазин по продаже музыкальных CD и DVD дисков (стр. 4 из 16)

Как было сказано, выше после отправки страницы клиенту вся информация о ней удаляется из памяти web-сервера, что позволяет экономить ресурсы сервера, это означает, что информация будет теряться после каждой обратной отсылки. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Эта информация используется, чтобы при повторном создании объёктов страницы на web-сервере, привести их в состояние, в котором они были перед последней отправкой страницы клиенту.

На рисунке 2 представлен жизненный цикл страницы ASP.NET.

Рис. 2. "Жизненный цикл страницы ASP.NET"

В данном пункте был обобщённо рассмотрен процесс взаимодействия пользователя с web-приложением посредством web-сервера и среды ASP.NET, а также приведён порядок обработки страниц средой ASP.NET.


2. Проектирование БД

2.1 Физическая модель БД

Проектирование таблиц базы данных и связей между ними осуществлялось с помощью встроенного редактора SQL Server 2000. На рисунке 3 представлена физическая модель базы данных web-приложения "Музыкальный Интернет-магазин".

Рис. 3 лист 1 "Физическая модель базы данных"


Скрипт для создания базы данных, а также примеры хранимых процедур, представлены в приложении 4.

Таблицы, представленные на рис. 3 лист 2, специально выделены в отдельную группу. Они необходимы для работы интерфейсов Membership API, Roles API и Profile API, предназначенных для обеспечения аутентификации и авторизации пользователей, а также управление профилями пользователей. Подробнее об этих интерфейсах и их использовании при разработке приложения написано в пунктах 4.5.1, 4.5.3 и 4.6 соответственно.

2.2 Описание таблиц БД

В таблице 1 представлена структура основных таблиц базы данных.

Таблица 1 "Структура основных таблиц БД"

Таблица Атрибут Тип данных Примечание
Catalogue(Каталог) ProductID(Код продукта) int Первичный ключ, автоинкрементное
ProductCode(Код продукта в каталоге фирмы-издателя) nvarchar(30) Уникальное
ArtistID(Код исполнителя) Внешний ключ из таблицы Artists, часть составного уникального поля
nvarchar(50) Часть составного уникального поля
TypeProductID(Код категории) int Внешний ключ из таблицы TypeProduct, часть составного уникального поля
GenreID(Кодмуз. жанра) int
PublisherID(Кодфирмы-издателя) int Внешний ключ из таблицы Publishers, часть составного уникального поля
YearRelease(Годвыпуска) int
DateAddition(Дата добавления в каталог) smalldatetime
Description(Описание) nvarchar(4000)
TrackList(Список композиций) nvarchar(1000)
bit
BoughtQuantity(Кол-во заказов) int
UnitCost(Цена) money
ImageFile(Файл обложки)
TypeProduct(Категория продукта) TypeProductID(Код категории) int Первичный ключ, автоинкрементное
TypeProductName(Название категории) nvarchar(30) Уникальное
Description(Описание) nvarchar(50)
Genres(Музыкальные жанры) GenreID(Кодмуз. жанра) Первичный ключ, автоинкрементное
GenreName(Название жанра) nvarchar(50)
Description(Описание) nvarchar(50)
Publishers(Фирмы-издатели) PublisherID(Кодфирмы-издателя) int Первичный ключ, автоинкрементное
PublisherName(Название фирмы-издателя) nvarchar(50) Уникальное
nvarchar(50)
Artists(Исполнители) ArtistID(Код испонителя) int Первичный ключ, автоинкрементное
ArtistName(Названиеисполнителя) nvarchar(50) Уникальное
Description(Описание) nvarchar(50)
Responses(Отзывы о продукции) int Часть составного первичного ключа, автоинкрементное
ProductID(Код продукта) Часть составного первичного ключа, внешний ключ из таблицы Catalogue
Rating(Оценка) tinyint
UserName(Имя пользователя) nvarchar(250)
Response(Отзыв) nvarchar(500)
DateAddition(Дата добавления) smalldatetime
FAQ(Вопрос / Ответ) FAQID(Код) int Первичный ключ, автоинкрементное
UserName(Имя пользователя) nvarchar(50)
nvarchar(500)
Answer nvarchar(500)
Orders(Заказы) OrderID(Код заказа) int Первичный ключ, автоинкрементное
uniqueidentifier Внешний ключ из таблицы aspnet_Users
OrderDate(Дата заказа) smalldatetime
SendDate(Дата отправки заказа)
ConditionOrderID(Код состояния заказа) int Внешний ключ из таблицы ConditionOrder
TypePaymentID(Код способа оплаты) int Внешний ключ из таблицы TypePayment
TotalPrice(Цена заказа) money
Discount(Скидка) int
OrderDetails OrderID(Код заказа) int Часть составного первичного ключа, внешний ключ из таблицы Orders
ProductID(Код продукта) int Часть составного первичного ключа, внешний ключ из таблицы Catalogue
Quantity(Кол-во) int
UnitCost(Цена) money
ConditionOrderID(Код состояния заказа) int Первичный ключ, автоинкрементное
ConditionName(Наименование состояния заказа) nvarchar(50)
Description(Описание)
TypePayment(Способы оплаты) TypePaymentID(Код способа оплаты) int Первичный ключ, автоинкрементное

3. Взаимодействие с БД

3.1 Архитектура ADO.NET

На сегодняшний момент существует множество технологий доступа к данным – ODBC, DAO, ADO и многие другие. Среда.NET Framework имеет свою собственную технологию доступа к данным – ADO.NET.

ADO.NET состоит из управляемых классов, позволяющих приложениям.NET подключаться к источникам данных (обычно реляционным базам данных), выполнять команды, осуществлять выборку, обработку и хранение данных.

В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении.

Важным элементом автономного доступа к данным является контейнер для табличных данных, который не знает о СУБД. Такой контейнер представлен в ADO.NET классом DataSet или DataTable.

Архитектуру ADO.NET можно разделить на две фундаментальные части: подключённую и автономную. Все различные классы ADO.NET можно отнести к подключённой или автономной части. Единственным исключением является класс DataAdapter. Работающий как посредник между подключённой и автономной частями.

Подключённая часть содержит классы, которым для работы нужно доступное открытое соединение, чтобы взаимодействовать с источником данных. Сюда входят классы для установки подключения к источнику данных (Connection), управления транзакциями (Transaction), выполнения команд (Command) и другие.

К автономной части относятся классы, которым не требуется доступное открытое подключение. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении.

Далее на рисунке 4 представлена общая структура ADO.NET и то, как с помощью неё программа взаимодействует с источником данных.

Рис. 4 "Общая структура ADO.NET и её место в обеспечении доступа к данным"

Отличительной особенностью ADO.NET являются то, что для доступа к разным базам данных используются разный набор классов. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Классы автономной части ADO.NET являются одинаковыми для всех баз данных.

В данном пункте была рассмотрена технология доступа к данным ADO.NET, определено её место в обеспечении взаимодействия приложения с базой данных, а также рассмотрены основные классы, которые будут использоваться при разработке дипломного проекта.

3.2 Компоненты доступа к данным

В профессиональных, хорошо спроектированных приложениях код взаимодействия с базой данных никогда не встраивается непосредственно в код, лежащий в основе web-страницы. В данной дипломной работе некоторые фрагменты текста отсутствуют или замещены на текст не соответствующий теме этого диплома. Отсутствуют или не соответствуют некоторые необходимые формулы, расчеты, диаграммы и таблицы. Для получения оригинальной версии работы пишите на электронный адрес, указанный в конце дипломной работы, в заключении. Чтобы выполнить операцию с базой данных, необходимо создать экземпляр класса и вызвать соответствующий метод.

При разработке дипломного проекта был использован именно такой подход. Для каждой таблицы базы данных, с которой будет взаимодействовать web-приложения, создан свой компонент доступа к данным, включающий все необходимые методы. Методы объявлены как статические, таким образом, вызывать их можно непосредственно через имя класса, не создавая его экземпляр. Каждый метод осуществляет обработку ошибок при взаимодействии с БД и информирует об этом web-страницу, из которой он был вызван.