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

Таблица oc_custom_field_value_description

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

Поля

Поле Тип данных Описание
custom_field_value_id int Идентификатор значения пользовательского поля. Внешний ключ, связывающий описание с конкретным значением из таблицы oc_custom_field_value.
language_id int Идентификатор языка. Внешний ключ для таблицы oc_language. Определяет, для какого языка предназначено данное описание.
custom_field_id int Идентификатор самого пользовательского поля. Внешний ключ для таблицы oc_custom_field. Прямая связь с родительским полем.
name varchar(128) Название значения, которое видит пользователь при выборе (например, "Стандартная доставка", "Экспресс" для поля "Способ доставки").

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

В админ-панели OpenCart при создании пользовательского поля типа "Select", "Radio" или "Checkbox" администратор может добавить несколько возможных значений для выбора. Для каждого из этих значений в таблицу oc_custom_field_value создается запись.

Затем, для поддержки мультиязычности, для каждого значения и для каждого активного языка магазина в таблицу oc_custom_field_value_description добавляется перевод его названия. Это означает, что для одного custom_field_value_id в этой таблице будет несколько записей с разными language_id.

Когда покупатель на витрине магазина видит форму с пользовательским полем, система загружает соответствующие значения и их описания на текущем языке, подставляя данные из поля name.

Наличие поля custom_field_id в этой таблице является избыточным с точки зрения нормализации базы данных (так как его можно получить через JOIN с таблицей oc_custom_field_value), но оно добавлено для оптимизации запросов и упрощения выборки данных.

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

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

SELECT cfvd.custom_field_value_id, cfvd.language_id, l.name as language_name, cfvd.name as value_name FROM oc_custom_field_value_description cfvd LEFT JOIN oc_language l ON (cfvd.language_id = l.language_id) WHERE cfvd.custom_field_id = 7 ORDER BY cfvd.custom_field_value_id, cfvd.language_id;

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

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