На главную Статьи Функции

Интернет-магазин на PHP. База данных. Таблица товаров.




Вот я наконец и дошел до того, чтобы начать серию статей о создании базы данных 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 ячеек:

  1. id –уникальный идентификатор товара в системе
  2. manufacturer_id – идентификатор производителя товара
  3. name – название товара, ограниченное 255 символами
  4. alias – алиас для системы ЧПУ (если она есть на сайте)
  5. short_description – короткое описание товара, пригодиться для списка товаров магазина
  6. description – полное описание товара, будет выводится на странице деталей товара
  7. price – цена товара, может состоять из чисел, с двумя знаками после запятой
  8. image – основное изображение товара. Это не обязательное поле, но по-началу так будет проще
  9. available – не обязательное поле, обозначающее доступность товара на складе, по умолчанию принимает значение 1 (товар доступен на складе)
  10. meta_keywords, meta_description  – поля для SEO продвижения сайта, по желанию будут выводится в мета тегах keywords и description
  11. meta_title – заголовок (title) страницы товара

В принципе, такой таблицы хватит для описания одного товара. Обратите внимание, что в таблице нет поля привязки товара к категориям магазина. Это сделано специально, чтобы можно было добавить один товар в несколько категорий. Дальше я расскажу об этом подробнее. Но, конечно, приведенной таблицы не хватит для более или менее полноценного магазина, поскольку у товаров могут быть дополнительные свойства, такие как размеры, цвета и т.д., которые должен выбирать пользователь. Можно конечно добавить в таблицу товаров поля длина, ширина и высота, но эти свойства не обязательны для всех товаров (например, если в интернет-магазине подают книги). Специально для этого мы создадим еще одну таблицу 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 ;
Назначение полей:

  1. id – уникальный идентификатор свойства (нужен для редактирования или удаления записи)
  2. product_id – идентификатор продукта, которому соответствует свойство
  3. property_name – название свойства (ширина, высота, цвет и еще что угодно)
  4. property_value – значение свойства, принимает строковое значение (для размеров можно записать: 200мм, для цвета: красный)
  5. property_price – цена товара с данным свойством, на тот случай если свойство влияет на цену

Теперь у нас уже есть таблица для добавления товара в интернет-магазин, а также таблица для задания свойств товара. Следующей таблицей будет таблица для хранения изображений товара, ведь в большинстве случаев одного изображения не хватит для того, чтобы дать пользователю полное представление о товаре. И так, таблица изображений товара 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`)
  ) 
  
Здесь все просто:

  1. id – идентификатор товара, необходим для удаления или замены изображения.
  2. product_id – идентификатор товара, к которому относится данное изображение.
  3. image – изображение
  4. title – необязательная запись, нужна если вы хотите дать название товару или добавить к изображению атрибуты alt или title

Теперь у нас есть три таблицы для интернет-магазина. На этом статью можно закончить, в следующей статье мы рассмотрим категории интернет магазина и то, как связать товары и категории между собой.



© 2010-2019 При использовании материалов ссылка на сайт www.webchaynik.ru обязательна

обратная связь