Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql—关联这些表的正确方法_Mysql - Fatal编程技术网

mysql—关联这些表的正确方法

mysql—关联这些表的正确方法,mysql,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字段,那么每次交易都会有多行和id,这是完全错误的。正确的方法是什么 您应该添加一个表

所以,我有两张桌子

在第一张桌子上,我们称之为产品,假设我有

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字段,那么每次交易都会有多行和id,这是完全错误的。正确的方法是什么

您应该添加一个表来管理产品和交易之间的关系 例如:

您需要的是两个表之间的连接,这两个表的结构如下:

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

如果您需要查找与deal 10关联的所有产品,您可以使用类似SELECT*FROM pivot_table的查询,其中deal_id=10

感谢您的修改,我仍然不太熟悉StackOverflow,因为该表没有主键,只有这两个id,因此我可以关联它们,对吗?在上一篇文章中,我只发布了概念竞赛。。您可以添加id或像使用唯一密钥一样使用产品id、交易id。。但是这个应用程序依赖于我不知道这对夫妇是否不合适。。如果是唯一的,则不需要id,否则。。添加id..@Lberteh这两个字段将是主键,除非一笔交易由于某种原因可以多次拥有一个产品;或者,如果需要在其他地方引用这些行,则可能需要一个id。
|-deal_id----|-product_id----|
| 10         | 23            |
| 10         | 24            |
| 10         | 32            |
| ...
| ...