Путаница в EAV (Сущность, атрибут и значение)?
У меня есть некоторые сомнения в подслушивании. Насколько я знаю, EAV следует использовать только в том случае, если вы не уверены в количестве полей в таблице, которое может измениться в будущем. Таким образом, eav_attribute
таблица содержит атрибуты, а значения хранятся в,
- eav_entity, eav_entity_int (for holding Integer values),
- eav_entity_varchar (for holding Varchar values),
- eav_entity_datetime (for holding Datetime values),
- eav_entity_decimal (for holding Decimal/float values),
- eav_entity_text (for holding text (mysql Text type) values).
Я проверил эти таблицы в установленной по умолчанию базе данных magento и в своих проектах magento (насколько я это сделал), но в этих таблицах не хранятся никакие данные. Все они пусты. Это сводит меня с ума.. Где именно использовалось подслушивающее устройство?.. Может ли любое тело объясните это на примере, пожалуйста..?
2 answers
Правильно.
Magento начал с этой концепции, но она была слишком медленной, поэтому они решили создать таблицы для каждого типа eav_type отдельно.
Вы найдете следующие таблицы (возможно, я забыл некоторые)
-
catalog_category_entity_*
-
catalog_product_entity_*
customer_entity_*
customer_address_entity_*
Основные данные хранятся в таблице сущностей, например customer_entity
Насколько я знаю, они оставлены для того, чтобы вы могли создавать свои собственные модели, использующие EAV. Стандартный eav в Magento, Клиенты, Продукты и т.д. имеют свои собственные таблицы.
Для атрибутов клиента каждая таблица начинается с customer_entity