我从MySQL数据库关系开始,我有一个问题 我要提出一个例子:
Table A = customer
Table B = products
Table C = sales
我想知道如何与这些表格建立关系,其中“销售”只有一个客户和多个产品。
“销售”表不能包含具有两个外键的主键,因为它将具有多个产品
我可以创建一个'assale',但我如何构建表来接收多个产品?
谢谢。
答案 0 :(得分:1)
客户与销售人员之间存在ONE-TO-MANY
关系。您可以在Sales表
customer
引用
Table sales
- id PK
- customers_id FK
销售和产品之间存在MANY-TO-MANY
关系。您将需要一个新表来映射此关系
Table sales_has_products
- sales_id FK
- products_id FK
答案 1 :(得分:0)
我建议创建第四个表,让我们称之为productSale
,它有自己的主键,以及外键,销售ID和产品ID。然后,Sale
将只有一个ID和客户ID的外键(当然还有您想要的任何其他信息)。
这样,销售可以包含同一产品的多个项目(因为所有productSale
行都具有唯一ID),并且可以通过查询productSale
来查找销售中包含的所有项目销售ID。