2016-08-03 98 views
1

所以,我有2个表MySQL的 - 对涉及这些表

在第一个表正确的做法,让我们把它称为产品,可以说我有

product_id, company_id (this is a FK), product_name. 

在第二个表,让我们叫它我有

deal_id, company_id (same one as the first table), deal_title. 

我需要添加产品的交易。如果我在deals表中添加了product_id字段,那么每笔交易都会有多行和ids,这是完全错误的。什么是正确的方法来做到这一点?

+0

这样的查询感谢修改它,我仍然n非常熟悉stackoverflow – Lberteh

回答

1

您应该添加表管理产品之间的关系,涉及 如:

table products_deal 

product_id 
deal_id 
+0

所以这张表没有主键,只有那些2个ID才能与他们联系,对吗? – Lberteh

+0

在前面我只发布概念比赛..你可以添加一个id或使用(product_id,deal_id)就像一个独特的关键..但这个应用程序依赖我不知道如果这对夫妇是古怪的不是。如果唯一,那么你不需要ID否则..添加ID .. – scaisEdge

+0

@Lberteh这两个领域将是主要关键(除非交易可以由于某种原因多次产品);或者如果您需要在别处引用这些行,则可能需要单个标识。 – Uueerdo

1

你想要的是你有两个表具有如下所示的结构之间的pivot table

|-deal_id----|-product_id----| 
| 10   | 23   | 
| 10   | 24   | 
| 10   | 32   | 
| ... 
| ... 

如果您需要查找与#10交易相关的所有产品,您可以使用像SELECT * FROM pivot_table WHERE deal_id = 10