Онлайн магазин с PHP и MySQL – Създаване на база данни и таблици

как да изработим онлайн магазин Това е продължението на статията Онлайн магазин с PHP и MySQL – Увод , добре е първо да бъде прочетена тя.

Продължаваме изграждането на нашия прост онлайн  магазин за компютърни компоненти със създаването на неговата база данни и съответните таблици в нея. Както споменах в първата част на статията, ще използвам MySQL. За боравене с MySQL, може да използвате phpMyAdmin , инструмент, написан на PHP, с помощта на който, администрирането на MySQL се извършва през приятелски настроен уеб интерфейс. Аз няма да го използвам, а ще създам нещата от команден ред, тъй като този вариант е по-удобен и лесен за споделяне в статия.

Предполага се, че имате инсталиран MySQL сървър и потребител. Ако нямате, потърсете информация в Интернет как става това, тъй като не е предмет на настоящата статия.

Ще кръстим базата данни на първия си онлайн магазин my_first_store.
Създаваме базата:

mysql> create database my_first_store;

При успешно създадена база , MySQL ще Ви отговори:

Query OK, 1 row affected (0.00 sec)

Казваме на MySQL да използва току що създадената база:

mysql> use my_first_store;

Той отговаря:

Database changed

Базата данни на нашия онлайн магазин вече е създадена и избрана и можем да преминем към създаване на таблицата. Първо ще създадем таблицата с категориите. Създаваме я по следния начин, а след
това ще разясня кое какво е:

mysql> CREATE TABLE category (
-> id INT(10) NOT NULL AUTO_INCREMENT,
-> parent_id INT(10),
-> title VARCHAR(255),
-> description VARCHAR(255),
-> PRIMARY KEY (id));
Query OK, 0 rows affected (0.11 sec)

Таблицата съдържа следните полета:

id: Това ще бъде първичния ключ. Той ще бъде различен за всеки ред от
таблицата, ще го идентифицира и ще ни служи да свързваме тази таблица с други. По-нататък ще стане ясно какво имам предвид. Този ключ ще нараства автоматично с всеки добавен ред в таблицата и ще бъде уникален.

parent_id: Ако категорията е дъщерна, т.е. е подкатегория, тук ще се съдържа първичния ключ(id) на родителската категория. Ако не бъде въведен ключ на родителска категория, стойността ще бъде NULL.

title: Това поле ще съдържа заглавието на категорията, както ще се вижда в бъдещото меню. Максималната дължина ще бъде 255 символа.

description: Кратко описание на категорията, нещо като подзаглавие. Например, ако заглавието на категорията е „Компоненти, описанието може да бъде Части и компоненти за лаптопи.

За примера ще се задоволим с тези полета. За повече функционалност, те могат да бъдат много повече.

След като създадохме таблицата за категории, ще създадем таблица с
производители(марки):

mysql> CREATE TABLE brand (
-> id INT(10) NOT NULL AUTO_INCREMENT,
-> title VARCHAR(255),
-> PRIMARY KEY (id));
Query OK, 0 rows affected (0.11 sec)

Тук отново използваме първичен ключ id и заглавие. За този примерен онлайн магазин ще приключим с тези 2 полета, но на практика могат да бъдат много повече – лого, брой продукти и т.н.

След като категориите и марките са налични, пристъпваме към създаването на най-интересната таблица – тази, в която ще се съхраняват продуктите:

mysql> CREATE TABLE products (
-> id INT(10) NOT NULL AUTO_INCREMENT,
-> cat_id INT(10),
-> brand_id INT(10),
-> title VARCHAR(255),
-> image VARCHAR(255),
-> description TEXT,
-> price FLOAT(10,2),
-> PRIMARY KEY (id));
Query OK, 0 rows affected (0.10 sec)

Тук полетата са следните:

id: Първичен ключ
cat_id: Първичен ключ на категорията, към която принадлежи продукта
brand_id: Първичен ключ на производителя(марката) на продукта
title: заглавие
image: снимка(картинка) – в случая това ще бъде името на файла на снимката, но може да бъде пълен URL , първичен ключ на снимка(ако има таблица за снимки) и т.н.
description: Описание на продукта
price: Цена на продукта. Като тип на променливата съм избрал FLOAT с дължина 10 символа, като закръглянето ще се извършва до втория знак(числата в скобите).

С тази таблица, всичко необходимо за създаване на прост продуктов каталог е готово. Но тъй като все пак изграждаме онлайн магазин, е необходимо по някакъв начин да получаваме поръчките. Това може да стане и с автоматичен email, но много по-сигурно е да се записват в отделна таблица в базата данни.

Затова, създаваме таблица за поръчки:

mysql> CREATE TABLE message (
-> id INT(10) NOT NULL AUTO_INCREMENT,
-> title VARCHAR(255),
-> products TEXT,
-> delivery TEXT,
-> price FLOAT(10,2),
-> date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
-> PRIMARY KEY (id));
Query OK, 0 rows affected (0.12 sec)

Вариациите с полетата могат да бъдат много, аз ще използвам няколко , колкото за пример:
id: Първичен ключ
title: Заглавие – за примера ще съдържа името на човека, направил поръчката, което ще се попълва непосредствено преди поръчката.
products: Тук ще се свържат поръчаните продукти
delivery: Данни за доставка – адрес, телефон и т.н.
price: Общата стойност на поръчката, като ще се закръгля до втория знак

С това приключваме със създаването на основните таблици. Разбира се, в един реален онлайн магазин, таблиците обикновено са повече. Ако магазинът изисква регистрация, ще бъде необходима и таблица, съдържаща информация за потребителите.
Ако искаме един продукт да може да излиза в повече от една категория, ще имаме нужда от спомагателни таблици.

В следващата, 3-та част на статията, ще започнем с изграждането на итерфейса, през който ще се въвеждат компютърните компоненти в нашия онлайн магазин.

© 2012, Ваньо Контев. Всички права запазени. Копирането на статията е разрешено само с връзка към първоизточника!

Публикувано в web, web програмиране, Линукс, Мрежи и сървъри, Онлайн проекти с етикети , , , , , , , . Постоянна връзка.

Коментарите са забранени.