目标:
针对Product
创建一个标签系统
型号:
Products
Hashtags
ProductTags
(联接表)我在做什么
当我创建新产品时,会发生以下情况:
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
}
]
});
问题
当我第一次创建具有以下标签的产品:tagnumber1
,tagnumber2
,tagnumber3
。它将这些添加到Hashtag表中,并在ProductTag
表中创建关系。
但是当我创建另一个具有相同标签的产品时:tagnumber1
,tagnumber2
,tagnumber3
。仍会将这些相同的标签添加到Hashtag表中。
如何?
是否可以在第二个添加项中将INSERT
保留到ProductTags
中,而不是在Hashtag中复制标签以抢占ids
(如果它们匹配)?