- •Введение
- •1. Основные понятия
- •1.1 Что такое реляционная база данных
- •1.2 Что такое sql
- •1.3 Что такое cms
- •1.4 Основные функции cms
- •1.5 Интернет-магазин
- •1.6 Что такое сервер MySql
- •1.7.1 Числовые типы данных
- •1.7.2 Строковые типы данных
- •1.7 Типы данных MySql
- •1.7.3 Календарные типы данных
- •2. Проектирование и создание базы данных
- •2.1 Таблица категорий товара
- •2.2 Таблица покупателей
- •2.3 Таблица способов доставки
- •2.4 Таблица товаров
- •2.5 Таблица заказов
- •2.6 Таблица заказанных товаров
- •2.7 Итоги создания базы данных
- •3. Разработка sql выборок данных из бд
- •3.1. Выборка таблицы категорий
- •3.2. Выборка всех товаров определенной категории
- •Заключение
- •Список литературы
2.5 Таблица заказов
По идеи в таблицу заказов мы должны собирать следующие данные: ключ заказа, ключ покупателя, ключ способов доставки, дату заказа, ключ статуса заказа, примечание к заказу. Мы назовем таблицу заказов – orders. Она будет иметь следующую структуру:
orders_id – это поле будет счетчиком и первичным ключем таблицы orders. Тип поля mediumint(50) unsigned
customer_id – ключ покупателя. Тип поля mediumint(10) unsigned
date – дата совершения заказа, тип поля datetime
dostavka_id – ключ способа доставки, тип поля tinyint(3) unsigned
status – ключ статуса заказа, тип поля tinyint(2) unsigned
Первичный ключ таблицы orders – order_id.
Теперь мы приступим непосредственно к написанию SQL кода для добавления нашей таблицы в базу данных. Выполним следующий запрос к базе данных:
CREATE TABLE IF NOT EXISTS `orders` (
`order_id` mediumint(50) unsigned NOT NULL AUTO_INCREMENT,
`customer_id` mediumint(10) unsigned NOT NULL,
`date` datetime NOT NULL,
`dostavka_id` tinyint(3) unsigned NOT NULL,
`status` tinyint(2) NOT NULL DEFAULT '0',
PRIMARY KEY (`order_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
В результате мы получили следующую структуру.
Таблица заказов
2.6 Таблица заказанных товаров
Мы создали таблицу orders, где мы сохраняем ключ заказа, ключ покупателя, ключ способов доставки, дату заказа, ключ статуса заказа. Но в таблицу orders мы не сохраняем товары, которые заказал покупатель, а это для функциональности интернет-магазина очень немаловажный момент. Мы не будем сохранять данные о заказанных товарах в таблице orders, так как это будет не очень рационально по отношению к структуре таблице и это весьма осложнить выборку данных. Для этого дела мы создадим отдельную таблицу, где мы будет собирать товары, которые заказал покупатель. Назовем эту таблицу «zakaz_tovar».
Создадим структуру таблицы:
zakaz_tovar_id, - счетчик, тип данных int(10) unsigned AUTO_INCREMENT
orders_id – ключ заказа, тип данных mediumint(50) unsigned
goods_id – ключ товара, тип данных int(10) unsigned AUTO_INCREMENT
quantity – количество заказанного товара, тип данных tinyint(3) unsigned
Поскольку в нашем интернет-магазине можно при заказе товара указать его количество мы в таблице zakaz_tovar добавили поле quantity. Теперь мы приступим к написанию SQL кода, для добавление нашей таблицы базу данных.
SQL код:
CREATE TABLE IF NOT EXISTS `zakaz_tovar` (
`zakaz_tovar_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`orders_id` mediumint(50) unsigned NOT NULL,
`goods_id` int(10) unsigned NOT NULL,
`quantity` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`zakaz_tovar_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
В результате мы получили:
Таблица заказанных товаров
2.7 Итоги создания базы данных
В итоге мы получили нормализованную базу данных по всем стандартам нормализации, то есть нормальных форм. В итоге у нас получилось 7 таблиц это не много и не мало для базового функционала стандартного интернет-магазина. Теперь мы можем наполнить нашу базу данных временными данными и разрабатывать SQL выборки.
Схема базы данных
