在主数据库中插入记录;从另一个表中插入外键列

时间:2017-12-11 02:26:42

标签: php mysql mysqli database-design

  编辑:看起来“桥接表”这个术语得到了我需要的东西

我正在尝试使用主键和外键作为列在表produ_tag中插入记录。

produ_tag

link to the table structure

产品

products structure

代码

tags structure

第一列refHeproducts表中产品的代码,第二列包含tags表中产品的标记。建模软件制作了这个附加表,以便它可以保存哪个产品包含哪个标签是必要的。

问题是它们是主要的,所以如果我有一个带有2个标签的产品,则不会插入记录,因为它已经插入了之前相同的产品。

我应该删除两者的主要内容吗?或者还有另一种处理方法,因为建模软件就是这样做的。

1 个答案:

答案 0 :(得分:1)

produ_tag表是“桥接表”,复合主键将允许任意数量的标记(namCh)与产品(refHe)相关联,只要该标记存在于tags表中且(refHe, nameCh)对是唯一的(即您不能多次关联同一产品和标记)。

如果您尝试插入标记时出错,则不是由于PK设置错误。您要么尝试引用不存在的标记,要么插入表中已存在的值组合。

请勿删除主键。我看到的唯一明显的问题是produ_tag.refHeproducts.refHe没有FK约束。