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