С точки зрения покупателя, сайт Интернет-магазина состоит из следующих основных компонентов:
каталог товаров;
виртуальная "корзина" покупателя, в которую можно отобрать приобретаемый товар;
система оформления заказов, позволяющая выбрать способ оплаты, указать адрес, место и время доставки товара и другую аналогичную информацию;
платежная система, предназначенная для оплаты товара кредитной карточкой или какими-либо другими способами.
Каталог товаров представляет собой часть базы данных Интернет-магазина, хранящую всю информацию о товарах. Каталог имеет иерархическую, древовидную структуру, отражающую способ классификации товара. Структура каталога напрямую зависит от того, какой товар продается в магазине.
Электронная корзина реализуется в виде персональной области памяти, выделяемой каждому покупателю в базе данных Интернет-магазина. Просматривая витрины Интернет-магазина, покупатель откладывает товар в свою электронную корзину, щелкая кнопку с надписью Купить или с аналогичной надписью. При этом выбранный товар сохраняется в памяти электронной корзины.
В любой момент времени покупатель может просмотреть и отредактировать содержимое своей корзины. При этом он может отказаться от покупки какого-либо или всего товара или изменить количество экземпляров приобретаемого товара одного наименования.
В процессе редактирования содержимого корзины покупатель видит стоимость каждого товара, а также общую стоимость всех товаров, лежащих в корзине, информацию о скидках на товар. На основании этой информации он может принять решение о том, чтобы сделать дополнительные покупки, или наоборот, отказаться от покупки товара.
Находясь на странице просмотра и редактирования содержимого корзины, покупатель может оформить заказ, щелкнув кнопку с названием Оформить заказ или аналогичным названием. Эта операция не связана с немедленной оплатой заказа и по аналогии с обычным магазином напоминает момент, когда Вы подходите с тележкой к кассе. Здесь Вы всегда можете передумать и продолжить хождение по магазину.
При оформлении от покупателя требуется указать контактную информацию, а также указать способ доставки и оплаты.
В контактной информации требуется указать адрес электронной почты, телефон и адрес доставки товара, а если товар приобретается по безналичному расчету, то и реквизиты для выписки счета.
Адрес электронной почты покупателя будет использован для отправки пароля доступа к закрытым разделам магазина (например, к разделу личного уголка покупателя), а также при необходимости для переписки с сотрудниками Интернет-магазина.
Если доставка товара осуществляется по почте, Интернет-магазин может рассчитать стоимость доставки исходя из массогабаритных параметров товара и названия города, в который будет осуществлена доставка.
На следующей диаграмме описывается диаграмма вариантов использования для администрирования.
Рис.2.4. Диаграмма вариантов использования для администратора
Сайт администрирования предназначен для выполнения всех текущих работ по обслуживанию Интернет-магазина. К нему имеют доступ только сотрудники Интернет-магазина и администрация.
Вот список основных задач, решаемых сайтом администрирования:
формирование и редактирование структуры каталога товаров;
ввод и редактирование информации о товарах;
привязка товаров к разделам каталога;
обработка новых заказов посетителей Интернет-магазина;
просмотр и редактирование контактной информации посетителей Интернет-магазина;
получение архивной и статистической информации о покупках и товарах.
Структура каталога отражает структуру товара, продаваемого в Интернет-магазине. Она может меняться по мере изменения ассортимента.
Каталог имеет древовидную структуру, при этом один и тот же товар может размещаться в нескольких рубриках этого каталога, т.е. может быть привязан к разным ветвям дерева.
В нашем Интернет-магазине операции ввода и редактирования информации о товарах приходится выполнять каждый день. Поэтому соответствующие разделы сайта администрирования должны быть удобны в использовании.
Когда посетитель оформляет заказ в, информация о заказе сохраняется в базе данных. На одной из страниц сайта администрирования сотрудник Интернет-магазина (менеджер) может просматривать список новых заказов.
Выбирая заказы из списка по одному, менеджер их обрабатывает. Обработка заключается в проверке контактной информации покупателя, а также согласовании с покупателем времени и места доставки (обычно по телефону или электронной почте).
При необходимости менеджер может отложить обработку заказа, оставить комментарий или пометку, например, о необходимости связаться с клиентом позже.
Закончив обработку заказа, менеджер щелкает кнопку с надписью Заказ обработан, после чего заказ перемещается в архив обработанных заказов. При необходимости менеджер может удалить заказ из архива, а также из списка необработанных заказов (например, если покупатель не указал контактную информацию и с ним невозможно связаться).
В том случае когда интернет-магазин содержит интегрированную складскую программу и программу учета продаж, то обработка заказа происходит намного сложнее. Заказ может автоматически комплектоваться со склада, магазин отслеживает и сохраняет в базе данных все перемещения товара, составляющего заказ, до момента получения товара покупателем.
2.2.2 Построение диаграммы классов
Центральное место в объектно-ориентированном программировании занимает разработка логической модели системы в виде диаграммы классов. Диаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывать их внутреннюю структуру и типы отношений.
Диаграмма классов представляет собой граф, вершинами которого являются элементы типа «классификатор», связанные различными типами структурных отношений. Диаграмма классов может также содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры, такие как объекты и связи.
Рис. 2.5. Диаграмма классов
2.3 Проектирование базы данных
2.3.1 Выбор системы управления базами данных
В последнее время наибольшее распространение получили реляционные базы данных. В реляционных базах данных информация храниться в одной или нескольких таблицах. Связь между таблицами осуществляется посредством значений одного или нескольких совпадающих полей. Каждая строка таблицы в реляционных базах данных уникальна. Для обеспечения уникальности строк используются ключи, которые содержат одно или несколько полей таблицы. Ключи хранятся в упорядоченном виде, что обеспечивает прямой доступ к записям таблицы во время поиска.
Исходя из анализа, сделанного в разделе 1, для реализации поставленной задачи, выберем реляционную модель данных. По легкости использования лучшей является реляционная модель, т.к. она оперирует только с одной структурой – таблицей. К тому же, подавляющее большинство современных СУБД, являются реляционными.
Перед тем как приступить к окончательному выбору СУБД, необходимо выделить набор факторов, которые необходимо учитывать.
Приведем перечень наиболее часто используемых факторов оценки СУБД:
требуемые объемы основной и дисковой памяти;
трудоемкость разработки программных средств окружения СУБД;
трудоемкость реализации приложений;
затраты на обучение персонала;
стоимость эксплуатации, информационной системы;
возможность совмещения разработки БД с ранее выполненными программными реализациями;
прогнозируемые сроки реализации информационной системы.
На основе анализа проведенного в предидущем разделе, а также, учитывая вышеперечисленные факторы, наиболее подходящими в качестве сервера баз данных являются СУБД PostgreSQL и Mysql, так как они обладает высокой надежностью, защищенностью, хорошей производительностью, а также открытостью.
Предпочтение было отдано Mysql по ряду причин, основная из которых – наибольшая распространенность данной СУБД у хостинг провайдеров.
MySQL обычно намного превосходит PostgreSQL по скорости работы. Кроме того, в MySQL 4.0 реализован кэш запросов. Он позволяет во много раз увеличить скорость обработки запросов для сайтов, на которых преобладают неоднократно повторяющиеся запросы на чтение.
По количеству пользователей MySQL также намного превосходит PostgreSQL. Поэтому код тестируется значительно более придирчиво и опытным путем доказана большая его надежность, нежели у PostgreSQL. MySQL чаще, чем PostgreSQL, используется на производстве, в основном потому, что компания MySQL AB (ранее - TCX DataKonsult AB) предоставляет высококачественную коммерческую техническую поддержку MySQL с момента появления этой системы на рынке, а у PostgreSQL до самого последнего времени никакой поддержки не было.
MySQL оснащен большим количеством API для других языков и поддерживается большим количеством существующих программ, нежели PostgreSQL. See section B Привнесенные программы.
MySQL работает на высоконадежных промышленных системах 24/7 (включенных 24 часа в сутки 7 дней в неделю). В большинстве случаев никаких "чисток" в MySQL производить не требуется.
Репликация MySQL отлично протестирована и используется в таких сайтах,как:
Yahoo Finance (http://finance.yahoo.com/)
Mobile.de (http://www.mobile.de/)
Slashdot (http://www.slashdot.org/)
В комплект поставки MySQL входят два тестовых пакета, а также пакет для замеров производительности. Тестовая система постоянно обновляется, в нее добавляется код для тестирования всех новых возможностей и почти всех воспроизводимых ошибок, которые попали в поле нашего зрения. Перед выпуском каждой новой версии используются эти пакеты для тестирования MySQL на нескольких платформах.