E-Comeerce Database ERD Справка - PullRequest
       2

E-Comeerce Database ERD Справка

0 голосов
/ 08 марта 2011

Это жарит мой мозг, мне действительно нужна помощь!Вот то, чего я хочу достичь.

У меня есть название таблицы Product.Продукт может иметь или не иметь до двух необязательных полей.Пример цвета и размера.

Если у продукта нет необязательного поля, у него будет только одна строка «Цена и количество», иначе для каждой строки необязательного поля будет одна цена и количество.

Я знаю, этот звук сбивает с толку, простите меня.Я тоже в замешательстве.): Но я могу дать вам несколько примеров ниже.

Итак, вопрос на миллион долларов: какие таблицы и какое поле я должен создать?


[Продукт без опциональныхПоле]

Цена |Количество

$ 1,00 |2


[Продукт с одним дополнительным полем]

Цена |Количество |Размер

1,00 $ |2 |Большой

$ 2,00 |1 |Маленький


[Продукт с двумя дополнительными полями]

Цена |Количество |Размер |Цвет

1,00 $ |2 |Большой |Зеленый

2,00 $ |1 |Маленький |Синий


Мне пришла в голову мысль о том, чтобы иметь две сущности с именем Product и Optional, чтобы иметь связь многих со многими с Optional Entity для хранения имени поля, примера Size и имени junction-entityсохранить значение, например Large.

Однако я все еще застрял в вопросе о том, как связать два необязательных поля одного продукта с одинаковыми ценой и количеством!Извините, что путаю: (

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Редактировать:

Поскольку ваши параметры неизвестны, вы можете сделать что-то вроде этого

Продукты

id
product_name
product_description
...

ProductOptions

id
option (size, color, whatever)
value (large, blue, anything)

ProductInventory

id
product_id
product_option_id
quantity
price

Тогда ваши записи в ProductInventory будут выглядеть следующим образом:

1 | 1 | 1 | 5 | 2.00
1 | 1 | 2 | 3 | 3.00

и т. Д.

Более подробный пример с использованием приведенной выше структуры таблицы:

Продукты

1 | Product 1 | Prod 1 Description
2 | Product 2 | Prod 2 Description
3 | Product 3 | Prod 3 Description

ProductOptions

1 | Size | Small
2 | Size | Medium
3 | Size | Large
4 | Color | Blue
5 | Color | Red
6 | Color | Green
7 | Width | 10 Inches
8 | ... (as many as you want)

ProductInventory

1 | 1 | 1 | 5 | 2.00
(says for product 1, size small, there are 5 quantity, and cost is 2.00

2 | 1 | 2 | 17 | 3.00
(says for product 1, size medium, there are 17 quantity, and cost is 3.00

и т. Д.

0 голосов
/ 09 марта 2011

Я столкнулся с той же проблемой, и я думаю, что вам нужно более одной таблицы. попробуйте это:

Продукты

id
product_name
product_price
.....

Опции продукта

id
product_option_name

product_options_values ​​

свяжите ваши product_options_values ​​с вашими product_options, используя product_options_id в качестве внешнего ключа. пример: product_option 'size' имеет product_option_values ​​'small', 'medium', 'large' *

id
product_options_id (fk)
options_value
options_value_price

product_options_to_products

эта таблица связывает ваши продукты с вашими опциями. здесь вы можете назначить разные опции для разных продуктов.

id
product_id
product_options_id
...