Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Третьякова 06.06.2013.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.09 Mб
Скачать

2.2.5 Характеристика базы данных

В данном дипломном проекте базы данных были реализованы при помощи приложения PhpMyAdmin.

База данных интернет-магазина хранит не только каталоги и справочники, но и системные файлы, информационные схемы и записи, необходимые для корректной работы интернет-магазина с технической точки зрения. На рисунке 2.9 показана стартовая страница приложения PhpMyAdmin, где можно видеть список всех баз данных, содержащихся в проекте. В данном случае база данных «neotuning» - уникальная для данного интернет-магазина база данных, отвечающая за работу интернет-магазина, остальные базы данных – системные, то есть могут быть использовании при построении схожего шаблона интернет-магазина. Информация в этих базах данных идентична информации в любом другом интернет-магазине с похожей структурой.

Рисунок 2.9 – Перечень база данных, используемых в проекте

Далее будет рассмотрена база данных «neotuning». База данных «neotuning» состоит из девяти таблиц. Перечень таблиц, содержащихся в базе данных, представлен на рисунке 2.10. Это таблицы goods, modules, orders, orders_content, pages, photos, settings, struct и struct_modules. Каждая из таблиц будет рассмотрена отдельно.

Во всех таблицах базы данных «neotuning» для каждой строки таблицы используются автоинкрементные первичные ключи (суррогатные ключи) - id, значение которых является уникальным и выставляется автоматически – свойство AUTO_INCREMENT генерирует порядковый номер элемента. Поле id является индексом и не может иметь нулевое значение. Каждое другое поле любой из таблиц является также ключевым и имеет одинаковую значимость.

Рисунок 2.10 – Состав базы данных «neotuning»

Таблица goods – это каталог товаров. Каждая строка таблицы – информация о том или ином продукте. Структура и состав полей приведен в таблице 2.1.

Таблица 2.1 - Структура и состав полей таблицы «goods»

Наименование поля

Описание поля

Тип данных

id

уникальный идентификатор

int(10)

catalog_id

принадлежность к определенному каталогу, вторичный ключ

int(11)

article

артикль

varchar(16)

title

наименование продукта

varchar(128)

description

описание продукта

text

price

цена продукта

int(10)

display

отображать/не отображать

tinyint(1)

На рисунке 2.11 представлена структура таблицы «goods» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.11 – Структура таблицы «goods»

Таблица modules – таблица, содержащая подключаемые модули, например, такие, как каталог (каталог в данном дипломном проекте выполнен в виде подключаемого модуля). Структура и состав полей приведен в таблице 2.2.

Таблица 2.2 - Структура и состав полей таблицы «modules»

Наименование поля

Описание поля

Тип данных

id

уникальный идентификатор

int(10)

name

название модуля

varchar(255)

title

описание модуля

varchar(255)

На рисунке 2.12 наглядно представлена структура таблицы «modules» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.12 - Структура таблицы «modules»

Таблица orders – таблица, в которой хранятся регистрационные данные, которые отправил пользователь, заполнив форму на сайте. Структура и состав полей приведен в таблице 2.3.

Таблица 2.3 - Структура и состав полей таблицы «orders»

Наименование поля

Описание поля

Тип данных

id

уникальный идентификатор

int(10)

date

дата отправления заявки

datetime

phone

номер телефона

varchar(18)

email

электронная почта

varchar(128)

address

адрес

text

description

примечания

text

total

цена заказа

int(11)

На рисунке 2.13 наглядно представлена структура таблицы «orders» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.13 - Структура таблицы «orders»

Таблица orders_content – таблица, в которой хранятся данные непосредственно о заказе. Структура и состав полей приведен в таблице 2.4.

Таблица 2.4 - Структура и состав полей таблицы «orders_content»

Наименование поля

Описание поля

Тип данных

order_id

id заказа из таблицы «orders» - вторичный ключ

int(11)

good_id

id товара из таблицы «goods» - вторичный ключ

int(11)

title

наименование товара из каталога

varchar (256)

price

цена товара

int(11)

count

количество

int(11)

На рисунке 2.14 наглядно представлена структура таблицы «orders_content» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.14 - Структура таблицы «orders_content»

Таблица pages – таблица, в которой хранятся обычные текстовые страницы, их состав и наполнение. Структура и состав полей таблицы «pages» приведен в таблице 2.5.

Таблица 2.5 - Структура и состав полей таблицы «pages»

Наименование поля

Описание поля

Тип данных

id

уникальный идентификатор

int(11)

alias

альтернативное имя страницы

varchar (128)

title

наименование страницы

varchar (128)

content

контент страницы

text

На рисунке 2.15 наглядно представлена структура таблицы «pages» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.15 – Структура таблицы «pages»

Таблица photos – таблица, в которой хранятся ссылки на изображения для товаров, изображения загружены на сервер в папку image. Структура и состав полей приведен в таблице 2.6.

Таблица 2.6 - Структура и состав полей таблицы «photos»

Наименование поля

Описание поля

Тип данных

goog_id

id товара в таблице «goods», вторичный ключ

int(11)

photo

ссылки на изображения

varchar (32)

main

атрибут, который показывает, главное ли это изображение для товара, или нет

tinyint(1)

На рисунке 2.16 наглядно представлена структура таблицы «photos» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.16 – Структура таблицы «photos»

Таблица settings – таблица, хранящая настройки для таблиц интернет-магазина. Структура и состав полей приведен в таблице 2.7.

Таблица 2.7 - Структура и состав полей таблицы «settings»

Наименование поля

Описание поля

Тип данных

namespase

ключ

varchar (32)

key

имя настройки

varchar (32)

value

описание настройки

varchar (255)

На рисунке 2.17 наглядно представлена структура таблицы «settings» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.17 – Структура таблицы «setting»

Таблица struct – таблица, которая хранит настройки каталога продукции. Структура и состав полей приведен в таблице 2.8.

Таблица 2.8 - Структура и состав полей таблицы «struct»

Наименование поля

Описание поля

Тип данных

id

уникальный идентификатор

int(10)

pid

id родительского раздела

int(10)

alias

альтернативное имя страницы

varchar(255)

title

имя страницы

varchar(255)

meta_title

заголовок для поисковых машин

varchar(255)

meta_description

заголовок для поисковых машин + описание

varchar(255)

position

сортировка в меню

int(11)

display

отображать/не отображать

smalint (1)

На рисунке 2.18 наглядно представлена структура таблицы «struct_modules» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.18 – Структура таблицы «struct»

Таблица struct_modules – таблица, которая хранит настройки каталога продукции. Структура и состав полей приведен в таблице 2.9.

Таблица 2.9 - Структура и состав полей таблицы «struct_modules»

Наименование поля

Описание поля

Тип данных

struct_id

id из таблицы «struct», вторичный ключ

int (10)

module_id

id модуля, вторичный ключ

int (10)

inheritance

настройки иерархии

tinyint(1)

settings

настройки модуля

blob

На рисунке 2.19 наглядно представлена структура таблицы «struct_modules» так, как она реализована в приложении PhpMyAdmin.

Рисунок 2.19 – Структура таблицы «struct_modules»

В полях всех таблиц базы данных «neotuning» используются следующие типы данных:

  • int – целое число, диапазона от -2 147 483 648 до 2 147 483 647;

  • tinyint – целое число, может хранить числа от -128 до 127;

  • blob – бинарные данные, запись может хранить не более 65 535 символов;

  • smalint – целое число, диапазона от -32 768 до 32 767;

  • varchar – строковая переменная, может хранить не более 255 символов;

  • text – строковая переменная, запись может хранить не более 65 535 символов;

  • datetime - дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС.

Для того, чтобы написать корректную, рабочую и функциональную базу данных, необходимо сначала ее спроектировать. В реальном проектировании структуры базы данных применяются семантическое моделирование. Семантическое моделирование представляет собой моделирование структуры данных, опираясь на смысл этих данных. В качестве инструмента семантического моделирования используются различные варианты диаграмм сущность-связь (ER - Entity-Relationship).

Для построения ER-модели базы данных «neotuning» было использовано CASE-средство Database Designer for MySQL.

На рисунке 2.20 продемонстрирована среда проектирования MicroOLAP Database Designer for MySQL последней версии, в которой была разработана ER-модель базы данных «neotuning». В диалоговом окне открыт редактор полей таблицы. Глядя на рисунок, можно видеть, в процессе проектирования базы данных не только была создана визуальная модель базы данных, но и заданы необходимые параметры для состава таблиц. Слева на панели находится перечень объектов проекта. Каждое поле таблицы редактируется в редакторе, для каждого поля можно задать параметры.

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

Рисунок 2.20 – Задание свойств полей таблицы в редакторе полей

На рисунке 2.21 представлена ER-модель базы данных «neotuning», которая была составлена на этапе проектирования.

Связи в схеме изображены синими стрелками. При добавлении связи в таблицу, которая содержит вторичные ключи, снизу списка полей, автоматически появляется поле, связанное с другой таблицей по уникальному коду, то есть внешний ключ. По умолчанию оно носит имя FK_(id (название таблицы)) и является ссылкой на родительскую таблицу, но для удобства последующей работы с базой данных эти поля были переименованы в соответствии с их назначением. Стрелка указывает на таблицу, откуда берется подставное поле, а не наоборот.

На рисунке видно, что две таблицы – settings и pages – не связанны с другими таблицами. Они абсолютно автономны, их функция – просто хранение статических страниц с простым контентом и некоторых настроек, которые могут использоваться по необходимости.

Рисунок 2.21 - ER-модель базы данных «neotuning»