如何简化每个产品有多个选项的电子商务数据库设计?

时间:2011-02-15 12:51:31

标签: php mysql

我有一个电子商务MySQL数据库,包含以下表格:

**Product**
----------
productID - 1
categoryID - 1
productName - Cricket Bat



**prodOptions**
----------
optionID - 1
productID - 1
optionName - Bat Size

<PK>optionID - 2
<FK>productID - 1
optionName - Bat Weight


**optionValues**
----------
optionValuesID - 1
optionID - 1
optionValue - Small

optionValuesID - 1
optionID - 1
optionValue - Heavy



**orders**
----------
orderID - 1
custID - 1


**orderContent**
----------
orderID - 1
orderContentID - 1
prodID - 1
optionNameID - 1,2
optionValuesId - 1,2

如你所见,每个板球棒都有多种选择。如何在订单内容表中存储所有选项而不连续输入两个或多个ID号?

1 个答案:

答案 0 :(得分:1)

添加一个新的orderOptions表,其中包含所选每个选项的

**orderOptions**
----------------
orderId - 1    optionId - 1   optionValue - 1
orderId - 1    optionId - 2   optionValue - 2

因此orderId可以在此表中出现两次(或更多次); PK是orderId optionId的组合。