Почему связь между конфигурируемым продуктом и простым продуктом хранится дважды? - PullRequest
28 голосов
/ 15 декабря 2011

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

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

catalog_product_relation
catalog_product_superlink_table

Почему эти отношения хранятся дважды?

Является ли этот устаревший код или есть семантическое различие между ссылкой на продукт и ссылкой на продукт?

Ожидает ли система, что они будут одинаковыми, или это допустимое состояние объекта, в котором эти таблицы представляют разные родительские / дочерние отношения?

1 Ответ

30 голосов
/ 15 декабря 2011

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

Вся бизнес-логика, связанная с конфигурируемыми продуктами, относится к таблицам catalog_product_super_*, например, поиск настраиваемых атрибутов и ценыобновления для конфигурируемого продукта.

Таблица catalog_product_relation, напротив, используется классами, не относящимися к конфигурируемым продуктам, такими как классы индексаторов продукта абстрактного каталога.хотел разделить логически различную функциональность не только на отдельные классы PHP, но и на отдельные таблицы базы данных.Возможные преимущества?Полагаю, теоретически проще так изменить реализацию настраиваемого продукта, не нарушая реализацию индексатора.

Это всего лишь предположение - я не подтвердил это или не разговаривал с кем-то, кто "знает" (ментально-нота-в-себе представить )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...