Вот я наконец и дошел до того, чтобы начать серию статей о создании базы данных MySQL для интернет магазина на PHP. В этих статья я по возможности максимально подробно попытаюсь описать этапы создания базы данных для небольшого интернет магазина. Опишу таблицы, то как они связаны и как выбирать из них данные о нужных товарах и много чего другого. Почему я решил начать именно с базы данных? Просто под существующую базу данных сайт написать легче, чем создавать параллельно базу данных и сайт. Итак, первой таблицей в базе данных будет таблица товаров, поскольку товар интернет-магазина – основная его единица, весь сайт работает в основном вокруг товаров (вывод списка товаров, поиск, корзина товаров и т.д.). Для начала создайте в phpMyAdmin новую базу данных, с любым названием и выполните следующий sql-запрос:
CREATE TABLE IF NOT EXISTS ` product` ( `id` int(11) NOT NULL AUTO_INCREMENT, ` manufacturer_id ` smallint(6) NOT NULL, `name` varchar(255) NOT NULL, `alias` varchar(255) NOT NULL, `short_description` text NOT NULL, `description` text NOT NULL, `price` decimal(20,2) NOT NULL, `image` varchar(255) NOT NULL, `available` smallint(1) NOT NULL DEFAULT '1', `meta_keywords` varchar(255) NOT NULL, `meta_description` varchar(255) NOT NULL, `meta_title` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;Итак, у нас получилась таблица товаров, содержащая 12 ячеек:
В принципе, такой таблицы хватит для описания одного товара. Обратите внимание, что в таблице нет поля привязки товара к категориям магазина. Это сделано специально, чтобы можно было добавить один товар в несколько категорий. Дальше я расскажу об этом подробнее. Но, конечно, приведенной таблицы не хватит для более или менее полноценного магазина, поскольку у товаров могут быть дополнительные свойства, такие как размеры, цвета и т.д., которые должен выбирать пользователь. Можно конечно добавить в таблицу товаров поля длина, ширина и высота, но эти свойства не обязательны для всех товаров (например, если в интернет-магазине подают книги). Специально для этого мы создадим еще одну таблицу product_properties:
CREATE TABLE IF NOT EXISTS `product_properties` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `property_name` varchar(255) NOT NULL, `property_value` varchar(255) NOT NULL, `property_price` decimal(20,2) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;Назначение полей:
Теперь у нас уже есть таблица для добавления товара в интернет-магазин, а также таблица для задания свойств товара. Следующей таблицей будет таблица для хранения изображений товара, ведь в большинстве случаев одного изображения не хватит для того, чтобы дать пользователю полное представление о товаре. И так, таблица изображений товара product_images:
CREATE TABLE IF NOT EXISTS `product_images` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `image` varchar(255) NOT NULL, `title` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`) )Здесь все просто:
Теперь у нас есть три таблицы для интернет-магазина. На этом статью можно закончить, в следующей статье мы рассмотрим категории интернет магазина и то, как связать товары и категории между собой.
© 2010-2024 При использовании материалов ссылка на сайт www.webchaynik.ru обязательна