Пользовательские атрибуты продукта для веб-сайта электронной коммерции - PullRequest
3 голосов
/ 22 декабря 2008

Я создаю базу данных, используя MySQL 5 для веб-сайта электронной коммерции. Я хочу, чтобы база данных была максимально гибкой, чтобы владельцы веб-сайта могли добавлять настраиваемые атрибуты для различных типов продуктов. Например, у них может быть продукт, имеющий 4 размера рубашки и 3 цвета для каждого доступного размера, или продукт, имеющий 6 размеров рубашки, 4 цвета для каждого размера и, возможно, 3-й атрибут.

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

Есть ли хорошее решение о том, как структурировать это в базе данных MySQL? В настоящее время у меня есть таблица, в которой будут храниться идентификатор продукта, количество и атрибуты будут объединены в 1 поле с использованием синтаксиса «ключ: значение», разделенного запятыми.

Я впервые пытаюсь создать такую ​​систему. Любая информация / помощь будет принята с благодарностью. Если вам нужна дополнительная информация, я также могу предоставить ее.


Эй, ребята, я очень ценю эту рекомендацию. Но чтобы сделать этот метод «Производный элемент», нужно ли мне создавать разные таблицы базы данных для каждого типа продукта, поскольку продукты могут иметь переменные атрибуты, связанные с ними?

Ответы [ 4 ]

3 голосов
/ 22 декабря 2008

Очевидно, что самое простое решение - сделать каждую комбинацию цвета рубашки совершенно отдельным предметом и отказаться от концепции атрибута. Я верю, что так работают большинство настоящих магазинов. Это имеет смысл, если учесть, как часто «базовые» элементы меняются.

Если это не приемлемо, вы можете иметь таблицу DerivedItem, где каждая строка была отдельным производным элементом, который имел ссылку на базовый элемент в таблице BaseItem. Это устранит некоторую избыточность за счет более сложной конструкции.

1 голос
/ 22 декабря 2008

Я бы пошел с продуктами и производными продуктами, или как вы могли бы назвать это.

Вы можете по-прежнему помещать атрибуты в них, если хотите.

Затем вы можете поместить общие атрибуты в таблицу продуктов (описание и т. Д.) И те, которые зависят от производного продукта (цвет, размер, цена и т. Д.).

Атрибуты лучше всего реализовать в виде отдельной таблицы с внешним ключом в производном атрибуте для таких вещей, как цвет. Это исключает возможность того, что пользователи введут такие вещи, как «Темно-синий» и «Синий (темный)», и ожидают, что ваша система волшебным образом узнает, что они одного цвета ...!

0 голосов
/ 21 сентября 2009

Хорошо, лучший способ сделать это - хорошо подумать о том, что вы пытаетесь сделать.

На сегодняшний день лучшие решения, которые я нашел, чтобы вы могли это сделать, - это глава в этой книге:

Начало электронной коммерции на PHP и MySQL: от новичка до профессионала

Однако, если вы пытаетесь приспособить это к техническим атрибутам, вы можете посмотреть, как это делает Magento Commerce, поскольку их метод тоже довольно хорош.

0 голосов
/ 24 декабря 2008

Пожалуйста, посмотрите на ссылку ниже, чтобы получить четкое представление о том, как вы должны иметь таблицу продуктов. Я думаю, что это объясняет все ваши сомнения. http://www.webmasterworld.com/ecommerce/3586815.htm

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