Можно с уверенностью сказать, что модель базы данных EAV/CR плохая. Тем не менее,
Вопрос: Какую модель, метод или шаблон базы данных следует использовать для обработки "классов" атрибутов, описывающих продукты электронной торговли, которые можно изменить во время выполнения?
В хорошей базе данных электронной коммерции вы будете хранить классы параметров (например, разрешение телевизора, то есть разрешение для каждого телевизора, но следующий продукт может не быть телевизором и не иметь "ТВ-разрешение" ). Как их хранить, эффективно искать и разрешать пользователям устанавливать типы продуктов с переменными полями, описывающими их продукты? Если поисковая система обнаруживает, что клиенты обычно ищут телевизоры на основе глубины консоли, вы можете добавить глубину консоли в свои поля, а затем добавить единую глубину для каждого типа продукта tv во время выполнения.
В хороших приложениях для электронной коммерции есть хорошая общая функция, где они показывают набор продуктов, а затем имеют "развернутые" боковые меню, в которых вы можете увидеть "ТВ-разрешение" в качестве заголовка, а пятерку самых популярных телевизоров Резолюции для найденного набора. Вы щелкаете по одному, и на нем отображаются только телевизоры с этим разрешением, что позволяет вам дополнительно развернуть, выбрав другие категории в боковом меню. Этими параметрами будут динамические атрибуты продукта, добавленные во время выполнения.
Дальнейшее обсуждение:
Короче говоря, есть ли какие-либо ссылки в Интернете или описания моделей, которые могли бы "научным образом" исправить следующую настройку? Я благодарю Ноэля Кеннеди за предложение таблицы категорий, но это может быть больше этого. Я описываю это иначе, пытаясь подчеркнуть значение. Мне может понадобиться коррекция точки обзора для решения проблемы, или мне может понадобиться глубже проникнуть в EAV/CR.
Полюбите положительный ответ на модель EAV/CR. Мои коллеги-разработчики все говорят о том, что Джеффри Кемп затронул ниже: "новые объекты должны быть смоделированы и спроектированы профессионалом" (из контекста, прочитайте его ответ ниже). Проблема заключается в следующем:
- сущности добавляют и удаляют атрибуты еженедельно
(ключевые слова поиска определяют будущие атрибуты) - новые сущности прибывают еженедельно
(продукты собираются с деталей) - старые организации едут еженедельно
(заархивированные, менее популярные, сезонные)
Клиент хочет добавить атрибуты к продуктам по двум причинам:
- отдел/поиск по ключевым словам/сравнительная таблица между аналогичными продуктами
- Конфигурация потребительского продукта перед оформлением заказа
Атрибуты должны иметь значение, а не только поиск по ключевым словам. Если они хотят сравнить все торты с "взбитыми сливками", они могут щелкнуть лепешками, нажать тему дня рождения, щелкнуть взбитыми сливками, затем проверить все торты, которые интересны, зная, что у всех есть взбитые сливки. Это не относится к торты, просто пример.