2015-03-17 3 views
-3

in Mysql Каков наилучший способ сохранить список цветов, доступных для продукта? есть много продуктов , и каждый продукт может иметь более двух цветов (например: цвет ткани1, цвет ткани2, цвет дерева).Каков наилучший метод сохранения палитры цветов, доступный для заказа?

+0

сделать цветную таблицу с внешним ключом продукта –

+2

Каков наилучший способ хранения списка в базе данных? – RandomSeed

ответ

-1

Есть много способов, которыми вы можете это сделать. вот мои пути 1: сделайте таблицу цветов с внешним ключом продукта 2: если вы хотите одну таблицы затем сохранить цвета с запятой или специальными символами (например, |) с каждым продуктом

+0

Вариант 1 вводит избыточность в таблице цветов. Вариант 2 поражает саму цель РСУБД. См.: [Действительно ли хранится список с разделителями в столбце базы данных?] (Http://stackoverflow.com/q/3653462/1446005). – RandomSeed

-2

Вы можете использовать html5 colorpicker для ввода или вручную вводит код цвета/имя и т. д. и имеет несколько полей ввода для каждого продукта, получая их как массив при сохранении в базе данных, у вас должен быть столбец цвета в вашей таблице продуктов, а затем использовать функцию implode php, чтобы сделать массив как строка, разделенная запятыми, и сохраните строку в столбце цвета. При извлечении данных вы должны использовать функцию разрыва php для получения соответствующих цветов в соответствующих полях конкретного продукта.

+1

Это именно то, что вы не должны делать – Strawberry

+0

@Strawberry вы можете объяснить, что не так с таким подходом? Если вы знаете лучший способ, почему бы вам не дать свой ответ. –

+0

Ответ на Volvox удовлетворительный – Strawberry

2

Я бы пошел с таблицей продуктов, таблицей цветов, а затем таблицей, чтобы соединить их (id_product, id_color). Это любой продукт может иметь более одного цвета, и вы можете легко найти весь продукт с выбранным цветом. Вы можете сделать подобное для другого атрибута.

Но вы могли бы хотеть иметь отдельную таблицу для атрибутов продукта (аналогично цвету)

Смежные вопросы