Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Календарные типы данных





Тип данных Объем памяти Диапазон Описание
DATE   3 байта от '1000-01-01' до '9999-12-31' Предназначен для хранения даты. В качестве первого значения указывается год в формате "YYYY", через дефис - месяц в формате "ММ", а затем день в формате "DD". В качестве разделителя может выступать не только дефис, а любой символ отличный от цифры.
TIME 3 байта от '-838:59:59' до '838:59:59' Предназначен для хранения времени суток. Значение вводится и хранится в привычном формате - hh:mm:ss, где hh - часы, mm - минуты, ss - секунды. В качестве разделителя может выступать любой символ отличный от цифры.
DATATIME 8 байт от '1000-01-01 00:00:00' до '9999-12-31 23:59:59' Предназначен для хранения и даты и времени суток. Значение вводится и хранится в формате - YYYY-MM-DD hh:mm:ss. В качестве разделителей могут выступать любые символы отличные от цифры.
TIMESTAMP 4 байта от '1970-01-01 00:00:00' до '2037-12-31 23:59:59' Предназначен для хранения даты и времени суток в виде количества секунд, прошедших с полуночи 1 января 1970 года (начало эпохи UNIX).
YEAR (M) 1 байт от 1970 до 2069 для М=2 и от 1901 до 2155 для М=4   Предназначен для хранения года. М - задает формат года. Например, YEAR (2) - 70, а YEAR (4) - 1970. Если параметр М не указан, то по умолчанию считается, что он равен 4.

 


 

Проектирование и создание базы данных

Таблица категорий товара

 

Для начала нам нужно создать таблицу категорий товара. Назовем её «cat» (cat – это сокращенно от categories). В таблице cat мы создадим 3 поля для хранение наших данных.

1) cat_id – порядковые номер или счетчик наших категорий. Тип данных у cat_id мы сделаем tinyint(3), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента.

2) cat_name – поля для имени наших категорий. Тип данных varchar(40)

3) parent_id – поле parent_id указывает на тип категории (Родительская/Дочерняя). Тип поля мы сделаем tinyint(3), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Также добавим атрибут DEFAULT '0', тем самым скажем серверу, что по умолчанию в это поле мы будем класть значение 0.

Первичный ключ: Поле cat_id

Пояснение: Поле parent_id отвечает за тип категории. Если в поле parent_id значение 0 – значит категория Родительская, иначе значение parent_id равно значению родительской категории, тем самым данная категория становится дочерней.

Теперь мы напишем код SQL для создание таблицы cat в нашей базе данных.

Код:

CREATE TABLE IF NOT EXISTS `cat` (

`cat_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,

`cat_name` varchar(40) NOT NULL,

`parent_id` tinyint(3) unsigned NOT NULL DEFAULT '0',

PRIMARY KEY (`cat_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Результат:

Мы создали в нашей базе данных таблицу категорий товара.

 

 

Таблица категорий

Для наглядности наполним таблицу категорий следующим содержимым:

1) Двигатель

1.1) Выхлопная система

1.2) Карбюратор

1.3) ЦПГ

1.4) КПП

1.5) Прочее

2) Электрика

3) Ходовая часть

3.1) Колеса

3.2) Тормоза

3.3) Амортизаторы

3.4) Вилка, маятник

3.5) Прочее

4) Внешний Вид

4.1) Сидения

4.2) Бак

4.3) Бардачки

4.4) Подножки

4.5) Дуги

4.6) Светотехника

Для этого мы напишем следующий SQL код:

INSERT INTO `cat` (

`cat_id`,

`cat_name`,

`parent_id`

)

VALUES

(1, 'Двигатель', '0'),

(2, 'Выхлопная система', '1'),

(3, 'Карбюратор', '1'),

(4, 'ЦПГ', '1'),

(5, 'КПП', '1'),

(6, 'Прочее', '1'),

(7, 'Электрика', '0'),

(8, 'Ходовая часть', '0'),

(9, 'Колеса', '8'),

(10, 'Тормоза', '8'),

(11, 'Амортизаторы', '8'),

(12, 'Вилка, маятник', '8'),

(13, 'Прочее', '8'),

(14, 'Внешний Вид', '0'),

(15, 'Сидения', '14'),

(16, 'Бак', '14'),

(17, 'Бардачки', '14'),

(18, 'Подножки', '14'),

(19, 'Дуги', '14'),

(20, 'Светотехника', '14'),

(21, 'Прочее', '14');

В результате мы получили наполненную таблицу категорий товара.

 

Наполненная таблица категорий

Таблица покупателей

 

Теперь нам нужно создать таблицу покупателей. Назовем её customers. В таблице customers мы создадим 8 поле для хранение наших данных.

1) customers_id – порядковые номер или счетчик покупателей. Тип данных у customers_id мы сделаем mediumint(10), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента.

2) name – поля для имени покупателя. Тип данных varchar(30)

3) email – поля для email адреса покупателя. Тип данных varchar(25)

4) email – поля для номера телефона покупателя. Тип данных varchar(10)

5) address – поля для адреса доставки покупателя. Тип данных varchar(100)

6) login – поля для логина покупателя. Тип данных varchar(20)

7) password – поля для пароля покупателя. Тип данных varchar(32)

Первичный ключ: Поле customers_id

Теперь мы напишем код и создадим таблицу customers в нашей базе данных

Код:

CREATE TABLE IF NOT EXISTS `customers` (

`customer_id` mediumint(10), unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(25) NOT NULL,

`email` varchar(25) NOT NULL,

`address` varchar(100) NOT NULL,

`login` varchar(20) NOT NULL,

`password` varchar(32) NOT NULL,

PRIMARY KEY (`customer_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Результат:

Мы создали таблицу покупателей в нашей базе данных.

 

Таблица покупателей


 

Таблица способов доставки

 

По идеи у покупателей при оформление заказа будет возможность выбрать способ доставки, так как способов доставки у нас будет несколько, то рациональней нам создать для способов доставки отдельную таблицу. Назовем мы её «dostavka» и у неё будет следующая структура:

1. dostavka_id – тип поля tinyint(2) unsigned

2. name – это имя варианта доставки тип поля varchar(32)

Теперь мы добавим эту таблицу в нашу базу данных написав следующий SQL код:

CREATE TABLE IF NOT EXISTS `dostavka` (

`dostavka_id` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(32) NOT NULL,

PRIMARY KEY (`dostavka_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Результат:

 

 

И так мы добавили таблицу «способов доставки» в нашу базу данных и теперь для наглядности мы добавим в ней несколько способов доставки, написал следующий SQL код:

INSERT INTO `dostavka` (`name`) VALUES

('Пересылка по почте'),

('Курьером'),

('Самовывоз'),

('Другое, по согласованию с менеджером');

Так как у нас на в таблице «dostavka» на поле «dostavka_id» стоит атрибут «AUTO_INCREMENT» в коде INSERT INTO нам не обязательно указывать ключ к каждой записи, достаточно только указать поле «name» для каждой записи, а ключ заполняется автоматически.

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

 

Таблица «dostavka»

Таблица товаров

 

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

1) goods_id – Счетчик товаров, тип данных int(10), добавим ключевое слово unsigned, чтобы исключить отрицательные числа. Добавим атрибут AUTO_INCREMENT для автоматического инкремента счетчика.

2) name – Поле для имени товара, тип varchar(30)

3) keywords – Поле для ключевых слов используемых в мета-тегах товара. Тип поля varchar(255)

4) description – Поле для описание товара в мета-тегах, тип поля аналогичен полю keywords

5) img – Это поле будет хранить в себе имя главной картинки товара (обложки).

6) goods_catid – Это поле будет хранить в себе ключ категории к которой принадлежит данный товар

7) anons – Данное поле будет хранить в себе сокращенное описание товара. Тип поля text.

8) content – Поле будет хранить в себе полное описание товара, Тип поля text

9) visible – Это поле будет отвечать за состояние товара, (видимы-невидимый) 0 – невидимый, 1 – видимый. По умолчанию – 1. Тип поляenum('0','1')

10) hits – Если 1 – значит товар относится к «хитам продаж» иначе – 0 По умолчанию – 0. Тип поляenum('0','1')

11) new -Если 1 – значит товар относится к «новинкам» иначе – 0 По умолчанию – 0. Тип поляenum('0','1')

12) sale -Если 1 – значит товар относится к «товарам со скидкой» иначе – 0 По умолчанию – 0. Тип поляenum('0','1')

13) data – дата добавление товара, Тип поля date

14) images -varchar(255)

15) price – Цена, тип поля float

Первичный ключ: Поле goods_id

После того как мы закончили проектировать таблицу, теперь мы можем написать SQL код для добавления таблицы в нашу базу данных. Создаем таблицу goods в базе данных

SQL код:

CREATE TABLE IF NOT EXISTS `goods` (

`goods_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(100) NOT NULL,

`keywords` varchar(255) NOT NULL,

`description` varchar(255) NOT NULL,

`img` varchar(30) NOT NULL,

`goods_catid ` tinyint(3) unsigned NOT NULL,

`anons` text NOT NULL,

`content` text NOT NULL,

`visible` enum('0','1') NOT NULL DEFAULT '1',

`hits` enum('0','1') NOT NULL DEFAULT '0',

`new` enum('0','1') NOT NULL DEFAULT '0',

`sale` enum('0','1') NOT NULL DEFAULT '0',

`price` float NOT NULL DEFAULT '0',

`date` date NOT NULL,

`img_slide` varchar(100) NOT NULL,

PRIMARY KEY (`goods_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

 

Таблица товаров

Таблица заказов

 

По идеи в таблицу заказов мы должны собирать следующие данные: ключ заказа, ключ покупателя, ключ способов доставки, дату заказа, ключ статуса заказа, примечание к заказу. Мы назовем таблицу заказов – orders. Она будет иметь следующую структуру:

1) orders_id – это поле будет счетчиком и первичным ключем таблицы orders. Тип поля mediumint(50) unsigned

2) customer_id – ключ покупателя. Тип поля mediumint(10) unsigned

3) date – дата совершения заказа, тип поля datetime

4) dostavka_id – ключ способа доставки, тип поля tinyint(3) unsigned

5) 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;

В результате мы получили следующую структуру.

 

Таблица заказов


 

Таблица заказанных товаров

 

Мы создали таблицу orders, где мы сохраняем ключ заказа, ключ покупателя, ключ способов доставки, дату заказа, ключ статуса заказа. Но в таблицу orders мы не сохраняем товары, которые заказал покупатель, а это для функциональности интернет-магазина очень немаловажный момент. Мы не будем сохранять данные о заказанных товарах в таблице orders, так как это будет не очень рационально по отношению к структуре таблице и это весьма осложнить выборку данных. Для этого дела мы создадим отдельную таблицу, где мы будет собирать товары, которые заказал покупатель. Назовем эту таблицу «zakaz_tovar».

Создадим структуру таблицы:

1) zakaz_tovar_id, - счетчик, тип данных int(10) unsigned AUTO_INCREMENT

2) orders_id – ключ заказа, тип данных mediumint(50) unsigned

3) goods_id – ключ товара, тип данных int(10) unsigned AUTO_INCREMENT

4) 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;

В результате мы получили:

 

Таблица заказанных товаров

Date: 2015-12-13; view: 377; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию