我想管理销售,销售和产品之间存在多对多的关系,所以我通过在其中添加实体销售描述来打破它,现在这三个实体之间的关系如下。
“Sales descrition”实体具有由customerId,customerName,date,time属性组成的复合主键,该属性应作为“Product”表中的外键。现在我很困惑,无论何时我将添加产品,我将不得不添加customerId,customerName,日期,时间似乎在逻辑上不正确。
请知道我应该如何处理销售与产品之间的关系?
答案 0 :(得分:1)
我会通过将客户数据存储在客户表中来组织这一点。然后,销售表使用来自customers表的customerid作为外键。销售表应该有自己的主键。该saleid密钥成为销售描述表中的外键。通过将销售描述表中的productid作为外键包含来链接产品。所以你的表看起来像这样:
客户表
- customerid
- 客户名称
- 客户地址
销售表
- saleid
- customerid(外键)
- 日期时间
产品表
- productid
- 产品名称
- 产品价格
销售说明表
- saleid(外键)
- productid(外键)
- 数量
答案 1 :(得分:0)
应该是相反的方式。产品ID应该是Sales Description表中的外键。销售描述是销售与产品之间的关系。客户ID属于Sale表,应该是customer表的外键。这样,单个客户可能有很多销售,每个销售可能有很多产品。我在这里假设Sale == Order。