如何处理销售与产品之间的关系

时间:2011-06-17 16:44:50

标签: erd

我想管理销售,销售和产品之间存在多对多的关系,所以我通过在其中添加实体销售描述来打破它,现在这三个实体之间的关系如下。

enter image description here

“Sales descrition”实体具有由customerId,customerName,date,time属性组成的复合主键,该属性应作为“Product”表中的外键。现在我很困惑,无论何时我将添加产品,我将不得不添加customerId,customerName,日期,时间似乎在逻辑上不正确。

请知道我应该如何处理销售与产品之间的关系?

2 个答案:

答案 0 :(得分:1)

我会通过将客户数据存储在客户表中来组织这一点。然后,销售表使用来自customers表的customerid作为外键。销售表应该有自己的主键。该saleid密钥成为销售描述表中的外键。通过将销售描述表中的productid作为外键包含来链接产品。所以你的表看起来像这样:

客户表

- customerid
- 客户名称
- 客户地址

销售表
- saleid
- customerid(外键)
- 日期时间

产品表
- productid
- 产品名称
- 产品价格

销售说明表
- saleid(外键)
- productid(外键)
- 数量

答案 1 :(得分:0)

应该是相反的方式。产品ID应该是Sales Description表中的外键。销售描述是销售与产品之间的关系。客户ID属于Sale表,应该是customer表的外键。这样,单个客户可能有很多销售,每个销售可能有很多产品。我在这里假设Sale == Order。