续写多对多关系,但仅在存在时创建

z9ju0rcb  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(153)

目标:
创建一个针对 Product 模型: Products Hashtags ProductTags (联接表)
我在做什么
当我创建一个新产品时,会发生以下情况:
产品已创建
标签已创建
已创建producttag联接
这个 data 看起来像这样:

{
  "category_id":2,
  "description":"Some description",
  "price": 45,
  "currency_id": "GBP",
  "hashtags":[
    {"tag":"tagnumber1"}, 
    {"tag":"tagnumber2"}, 
    {"tag":"tagnumber3"}
  ]
}

这个 Product.create 代码如下所示:

models.Product.create(data, {
      include: [
        {
          model: models.Hashtag,
          as: "hashtags",
          attributes: models.Hashtag.fields
        }
      ]
    });

问题
当我第一次使用tag创建产品时: tagnumber1 , tagnumber2 , tagnumber3 . 它将这些添加到hashtag表中,并在 ProductTag table。
但当我创建另一个具有相同标签的产品时: tagnumber1 , tagnumber2 , tagnumber3 . 它仍然将这些相同的标记添加到hashtag表中。
怎样?
有没有可能在第二次添加时仍然保留它 INSERT 进入 ProductTags 而不是复制hashtag中的标签来获取 ids 如果他们匹配?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题