Подтвердить что ты не робот

Как атрибуты продукта и опции атрибутов хранятся в базе данных Magento?

Я пытаюсь понять, как делается связь между параметрами атрибута и атрибута, а также продуктом и атрибутами в Magento. Есть ли какая-либо ссылка на то, как это работает? или кто-нибудь подскажет мне это.

Спасибо,

Балан

4b9b3361

Ответ 1

Как говорит Алан Сторм: "Вам не нужно знать о том, как работает ваша БД. Вы должны узнать, как работают модели". (Это не точная цитата. Я дал вам смысл).

Но я создал собственную схему, чтобы понять структуру БД. Итак, этот экран показывает, как это работает: enter image description hereenter image description here

Надеюсь, поможет.

Также я рекомендую вам просмотреть эти ссылки:

http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_database_diagram

http://alanstorm.com/magento_advanced_orm_entity_attribute_value_part_1

Ответ 2

1) Атрибуты хранятся в eav_attribute. Там вы получите attribute_id.

2) Параметры сохраняются в eav_attribute_option_value. Там вы получите option_id.

3) Параметры присваиваются продукту в catalog_product_entity_varchar. Там вам нужно entity_id продукта, attribute_id от 1) и значение, разделенное запятыми option_ids из 2)

Ответ 4

Атрибуты продукта - это дополнительные значения, которые вы можете назначить продукту и хранятся в основной таблице EAV по имени, а затем данные сохраняются в нескольких разных таблицах на основе типа данных, например, varchar, decimal, text Целое число, дата и т.д.

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

следующая ссылка объясняет отношения лучше: http://www.magentocommerce.com/wiki/2_-_magento_concepts_and_architecture/magento_database_diagram

И более глубокая деталь разработчика: http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-7-advanced-orm-entity-attribute-value

И наборами атрибутов будет другая вещь, с которой вы сталкиваетесь, например название, набор атрибутов, сгруппированных вместе. http://www.magentocommerce.com/knowledge-base/entry/how-do-i-create-an-attribute-set

НТН Shaun

Ответ 5

SELECT pei.value 
FROM `catalog_product_entity_int` pei 
JOIN `eav_attribute` ea 
ON pei.attribute_id = ea .attribute_id 
WHERE pei.entity_id = {your product_id} 
AND ea.attribute_code = '{your attribute_code}'

Обратите внимание, что существует множество различных таблиц типа catalog_product_entity_int в зависимости от типа атрибута, поэтому один из них может быть подходящим.

Ответ 6

Я нашел эти запросы очень полезными для поиска таких вещей, как - где он говорит, что цвет продукта черный?, например.

-- show_product_attr.sql
select
   p.entity_id,
   p.entity_type_id,
   p.attribute_set_id,
   p.type_id,
   p.sku,
   a.attribute_id,
   a.frontend_label as attribute,
   av.value
from
   catalog_product_entity p
   left join catalog_product_entity_{datatype} av on
      p.entity_id = av.entity_id
   left join eav_attribute a on
      av.attribute_id = a.attribute_id
where
   -- p.entity_id = 28683
   -- p.sku = '0452MR'
   p.entity_id = {eid}
;

И для attr_options

-- show_product_attr_options.sql
select
   p.entity_id,
   -- p.entity_type_id,
   -- p.attribute_set_id,
   p.type_id,
   p.sku,
   a.attribute_id,
   a.frontend_label as attribute,
   -- a.attribute_code,
   av.value,
   ao.*
from
   catalog_product_entity p

   left join catalog_product_entity_int av on
      p.entity_id = av.entity_id

   left join eav_attribute a on
      av.attribute_id = a.attribute_id
   left join eav_attribute_option_value ao on
      av.value = ao.option_id 
where
   -- p.entity_id = 28683
   p.entity_id = {eid}
;

Вам нужно заменить {datatype} текстом, varchar, int, decimal и т.д. для первого запроса и {eid} с entity_id для обоих запросов. Что вы можете сделать в команде, например:

$ cat show_product_attr_options.sql | sed -e "s/{eid}/30445/" | mysql -uUSER -pPASS DATABASE -t
+-----------+---------+--------------+--------------+---------------------------+-------+----------+-----------+----------+--------------------+-------------+
| entity_id | type_id | sku          | attribute_id | attribute                 | value | value_id | option_id | store_id | value              | colorswatch |
+-----------+---------+--------------+--------------+---------------------------+-------+----------+-----------+----------+--------------------+-------------+
|     30445 | simple  | 840001179127 |           96 | Status                    |     1 |     5972 |         1 |        0 | Male               | NULL        |
|     30445 | simple  | 840001179127 |          102 | Visibility                |     1 |     5972 |         1 |        0 | Male               | NULL        |
|     30445 | simple  | 840001179127 |          122 | Tax Class                 |     2 |     5973 |         2 |        0 | Female             | NULL        |
|     30445 | simple  | 840001179127 |          217 | Size                      |   257 |    17655 |       257 |        0 | XS                 | NULL        |
|     30445 | simple  | 840001179127 |          217 | Size                      |   257 |    17657 |       257 |        1 | XS                 | NULL        |
|     30445 | simple  | 840001179127 |          224 | Color                     |   609 |    18717 |       609 |        0 | Arctic Ice Heather | NULL        |
|     30445 | simple  | 840001179127 |          260 | Featured                  |     0 |     NULL |      NULL |     NULL | NULL               | NULL        |
|     30445 | simple  | 840001179127 |          262 | Clearance Product         |     0 |     NULL |      NULL |     NULL | NULL               | NULL        |
|     30445 | simple  | 840001179127 |          263 | Skip from Being Submitted |     0 |     NULL |      NULL |     NULL | NULL               | NULL        |
|     30445 | simple  | 840001179127 |          283 | Discontinued              |     0 |     NULL |      NULL |     NULL | NULL               | NULL        |
+-----------+---------+--------------+--------------+---------------------------+-------+----------+-----------+----------+--------------------+-------------+

Аналогичный набор sql-скриптов может быть создан для каталога.