Смекни!
smekni.com

Создание книжного электронного магазина (стр. 6 из 10)

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

2.3.2 Выбор средств доступа к базе данных

Все современные СУБД, в том числе и Mysql, имеют достаточно широкий набор технологий и драйверов для подключения к базам данных, как локальных пользователей, так и пользователей находящихся в сети. Необходимость в этом возникла с развитием компьютерных сетей и сетевых технологий, а также с возникновением проблем кросплатформенности и масштабируемости проектируемых систем. В связи с тем, что в мире существует достаточно большое количество платформ (как программных, так и аппаратных), возникла необходимость в создании универсальных, средств доступа к СУБД, на зависящих не от программного не от аппаратного обеспечения, как серверной части комплекса, так и клиентской.

Такое промежуточное программное обеспечение часто называют драйверами доступа к СУБД.

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

Приведем список наиболее распространенных драйверов и технологий доступа к СУБД:

ODBC;

JDBC;

BDE;

TCP/IP;

UNIX Sockets.

ODBC

ODBC – это спецификация на API базы данных. Данный API является независимым как от СУБД так и от операционной системы на которой работает СУБД. ODBC API основан на CLI спецификации от X/Open и ISO/IEC. ODBC версии 3.х реализует полностью все функции, более ранние версии, реализовывали их лишь частично. Одна из главных функций реализованных в 3-й версии, это перемещаемые курсоры, которые очень эффективно используются в современных приложениях.

Все функции ODBC реализуются разработчиками конкретной СУБД, посредством написания специальных драйверов.

Важно понимать, что ODBC разработан для повышения совместимости различных СУБД, а не для расширения их функциональности.

JDBC

JDBC API обеспечивает универсальный способ доступа к данным, с использованием языка программирования Java. Используя JDBC 3.0 вы можете получить доступ практически к любому источнику данных, начиная от реляционных баз данных и заканчивая электронными таблицами и обычными файлами. Технология JDBC также обеспечивает мощную базу для создания своих собственных интерфейсов и средств доступа к данным.

BDE

Borland Database Engine (BDE) – это 32-х битное ядро разработки баз данных для Windows, связанное с такими средами разработки приложений как Delphi, C++Builder, IntraBuilder, Paradox и Visual dBASE для Windows. BDE – это мощное средство для разработки клиент-серверных приложений.

Архитектура BDE включает в себя многочисленные сервисы, используемые драйверами доступа к базам данных. Включает набор драйверов предоставляющих доступ к таким источникам данных как: Paradox, dBASE, FoxPro, Access, и текстовые файлы. При необходимости можно добавить Microsoft ODBC драйвер во встроенный ODBC socket. Также существует возможность подключения и работы с такими SQL серверами как Informix, DB2, InterBase, Oracle, и Sybase.

Исходя из вышеприведенного анализа средств доступа к СУБД, было принято решение использовать технологию прямого доступа к базе данных средствами PHP.

Язык php является свободно распространяемым, имеет очень много встроенных функция для работы с базами данных, также он обладает достаточной безопасностью для написания подобных клиентских приложений.

Поставляется с операционной системой и настраивается на конкретную СУБД пересборкой с сетевыми библиотеками базы. Сейчас существуют несколько сред для разработки программ на PHP. С одной стороны язык интерпретатор подобен sh csh ksh. Синтаксис подобен С++. Язык PHP очень простой, рабочий код появляется почти сразу.

Доступ к базам через библиотеки самих баз не накладывает никаких ограничений на доступ к данным. Используя ускоритель фирмы Zend производительность кода увеличивается на 40-60%. Легкая интеграция дополнительных модулей написанных на С/C++ через разделяемые библиотеки, при этом не требуется перенастройка APACHE и PHP. В последнее время появилась возможность выполнения кода на клиенте (plug-in).

Как и СУБД Mysql язык Php входит в большинство хостинг пакетов, предлагаемых отечественными и иностранными провайдерами. Этот фактор в связке с вышеперечисленными определил наш выбор в пользу данного языка программирования веб приложений.

2.3.3 Проектирование информационной базы

При разработке базы данных выделяются основные информационные сущности предметной области, выявляются связи между ними. Логическая структура базы данных определяется информационными потребностями проекта. При ее разработке выделяются основные информационные сущности предметной области, выявляются связи между ними. Затем, логическая структура оптимизируется в соответствии с реализуемыми целевыми функциями проекта.

Структура базы данных выглядит следующим образом:


Рис.2.6. Структура базы данных

Таблица 1. Поля таблицы категорий (Categories)

Поле таблицы Тип данных Описание
Id SMALLINT Уникальный идентификатор категории
ParentCategory SMALLINT Категория, по отношению к которой текущая является подкатегорией
Name VARCHAR(32) Название категории

Таблица 2. Поля таблицы книг (Books)

Поле таблицы Тип данных Описание
Id MEDIUMINT UNSIGNED Уникальный идентификатор товара
CategoryID SMALLINT UNSIGNED Категория, к которой относится данная книга
Name VARCHAR(255) Название книги
AuthorID SMALLINT UNSIGNED Автор книги
PublisherID SMALLINT UNSIGNED Издательство
ISBN CHAR(13) Уникальный номер книги ISBN
ImageHREF VARCHAR(255) Путь к файлу изображения обложки книги
Synopsis TEXT Краткое описание
PagesCount SMALLINT Число страниц
PublicationDate YEAR Дата публикации
AppearDate DATE Время поступления книги в магазин
Count INTEGER Количество на складе
Price DECIMAL(6,2) Цена книги

Таблица 3. Поля таблицы авторов (Authors)

Поле таблицы Тип данных Описание
Id SMALLINT UNSIGNED Уникальный идентификатор автора
Name VARCHAR(255) Имя автора
Biography TEXT Краткая биографическая справка

Таблица 4. Поля таблицы издательств (Publishers)

Поле таблицы Тип данных Описание
Id SMALLINT UNSIGNED Уникальный идентификатор издательства
Name VARCHAR(255) Название издательства
Description TEXT Краткое описание издательства

Таблица 5. Поля таблицы пользователей (Users)

Поле таблицы Тип данных Описание
Id MEDIUMINT UNSIGNED Уникальный идентификатор покупателя
Name CHAR (127) Имя покупателя
Surname CHAR (127) Фамилия покупателя
Email VARCHAR(64) E-Mail покупателя
Phone VARCHAR(20) Телефон для подтверждения заказа
Address VARCHAR(255) Адрес доставки
IP CHAR(14) Текущий IP покупателя
SessionKey INT UNSIGNED Уникальный код для авторизации

Таблица 1.6. Поля таблицы пользовательской корзинки (Orders)

Поле таблицы Тип данных Описание
Id INT UNSIGNED Номер заказа
Amount TINYINT Число товаров, добавленных в покупательскую корзинку
OrderStatusID INTEGER Состояние заказа
Date DATETIME Дата заказа
UserID INTEGER Покупатель
Payment BYTE Вид оплаты
Amount CHAR(10) Сумма заказа

Таблица 1.7. Поля таблицы детализации пользовательской корзинки (OrderDetail)

Поле таблицы Тип данных Описание
Id INT UNSIGNED Номер по порядку
OrderID INTEGER Номер заказа
OrderStatusID INTEGER Состояние заказа
Quantity DATETIME Количество
UserID INTEGER Покупатель
Payment BYTE Вид оплаты
BookID CHAR(10) Наименование товара

Таблица 1.8. Поля таблицы статус заказа (OrderStatus)

Поле таблицы Тип данных Описание
Id INT UNSIGNED Код состояния заказа
Stutus INTEGER Название состояния заказа

2.4 Архитектура электронного магазина

Архитектура сайта - систематизация информации и навигации по ней с целью помочь посетителям более успешно находить нужные им данные. Хорошо продуманная грамотная архитектура сайта гарантирует, что пользователи потратят меньше времени на поиск нужной информации.

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