НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
3 of 152 menu

Таблица oc_category

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

Поля

Поле Тип данных Описание
category_id int Уникальный идентификатор категории. Автоинкрементное поле.
image varchar(255) Путь к изображению категории относительно директории image/catalog/.
parent_id int Идентификатор родительской категории. Для корневых категорий значение равно 0.
top tinyint(1) Флаг, указывающий, показывать ли категорию в главном меню сайта (1 - да, 0 - нет).
column int Количество столбцов для отображения подкатегорий в главном меню.
sort_order int Порядок сортировки категории внутри родительской категории. Меньшие значения выводятся первыми.
status tinyint(1) Статус категории: 1 - включена, 0 - отключена.
date_added datetime Дата и время добавления категории.
date_modified datetime Дата и время последнего изменения категории.

Как это работает

Таблица oc_category хранит только основные технические данные категорий. Многоязычные названия, описания и мета-теги хранятся в связанной таблице oc_category_description, которая связывается по полю category_id.

Поле parent_id реализует иерархическую структуру "родитель-потомок". Категория с parent_id = 0 является корневой. Для построения дерева категорий используется рекурсивный алгоритм, который собирает все дочерние элементы для каждого родителя.

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

Поле top определяет, будет ли категория отображаться в горизонтальном главном меню сайта. Поле column задает количество колонок для отображения дочерних категорий в выпадающем меню.

Пример SQL-запроса

Получить полную информацию о категориях с их названиями можно следующим запросом:

SELECT c.*, cd.name, cd.description, cd.meta_title, cd.meta_description, cd.meta_keyword FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) WHERE cd.language_id = 1 ORDER BY c.parent_id, c.sort_order;

Смотрите также

  • таблицу oc_category_description,
    которая хранит многоязычные описания категорий
  • таблицу oc_category_to_store,
    которая связывает категории с магазинами
  • таблицу oc_category_path,
    которая оптимизирует работу с иерархией категорий
  • таблицу oc_product_to_category,
    которая связывает товары с категориями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить