Я строю интернет-магазин, и у меня проблема.У меня будут продукты с прямой ценой (например, HTC Touch 2 Smartphone: $ 299,00), но в то же время у меня будут продукты с ценами на комбинации, основанные на разновидностях: например:
product: Nike Exclusive T-Shirt 2011
varieties:
Sizes: L, XL
Colors: red, blue
combinations will be:
L white - $10
XL white - $15
L blue - $11
XL blue - $16
Мне нужен лучший способ (или только один работающий :)) структуры базы данных, где я могу хранить оба типа продуктов, и если я хочу перечислить свои продукты из категории, которая содержит оба типа продуктов на веб-странице (одна ценаНесколько цен) Я могу построить запрос MySQL, чтобы получить все продукты в одном запросе.
спасибо
ОБНОВЛЕНИЕ
У меня наверняка будут следующие таблицы: [products]
, [varieties]
(цвет, размер), [varietyValues]
(где хранится какой королькакие цвета и какие размеры у продукта - каждый из них представляет собой строку в таблице {productId +ietyId + value (красный, S, M, зеленый, XL и т. д.))).После этого у меня будет другая таблица [combinations]
с отношением «многие ко многим [n-to-m]» между [combinations]
и [varietyValues]
, что приведет к созданию новой таблицы [combPrices]
.Каждая строка этой новой таблицы n-to-m будет иметь цену.
Теперь проблема в том, что я не могу понять, как хранить продукты с одинарной ценой в этой структуре данных.
ОБНОВЛЕНИЕ 2
На этом изображении вы можетесм. диаграмму базы данных, которая, я думаю, была бы приемлема для продуктов с несколькими ценами: 
ОСНОВНАЯ ПРОБЛЕМА: Поскольку это интернет-магазин, люди будут помещать товары в корзину.Я думаю, что элементы, вставленные в корзину, должны быть из той же таблицы (в нашем случае это будет таблица [combinations]
, так как сохранены цены).
Вот некоторые данные для этих таблиц,просто чтобы быть более понятным:
[products]
productid | productName
1 | Nike T-Shirt
2 | HTC Touch 2 Smartphone
[specifications]
specId | productId | specName
1 | 1 | Size
2 | 1 | Color
[specvalues]
specValueId | specId | svValue
1 | 1 | L
2 | 1 | XL
3 | 2 | white
4 | 2 | blue
5 | 2 | red
[combinations]
(товаров в корзину)
combinationId | price | description
1 | 10 | White L Nike T-Shirt
2 | 15 | White XL Nike T-Shirt
3 | 11 | Blue L Nike T-Shirt
4 | 16 | Blue XL Nike T-Shirt
5 | 18 | Red XL Nike T-Shirt
[combinationParts]
nmid | combinationId | specValueId
1 | 1 | 1
2 | 1 | 3
3 | 2 | 2
4 | 2 | 3
5 | 3 | 1
1 | 3 | 4
2 | 4 | 2
3 | 4 | 4
4 | 5 | 2
5 | 5 | 5
Надеюсь, моя диаграмма и база данных имеют смысл :).
Итак, финалВопрос в том, как я могу хранить продукты с единой ценой (смартфон HTC Touch 2), чтобы их можно было добавлять в корзину, как товары с несколькими ценами.