gpt4 book ai didi

javascript - 如何使用 Sequelize.js 将数据插入桥接/映射表

转载 作者:行者123 更新时间:2023-12-03 22:37:45 30 4
gpt4 key购买 nike

我正在尝试使用 sequelize.js 将数据插入到桥接/映射表中

我将文章定义为-

const Articles = db.define('article', {
"slug": {
type: Sequelize.STRING,
primaryKey: true,
allowNull:false
},
"title": {
type: Sequelize.STRING(50),
allowNull: false
},
"description": {
type: Sequelize.STRING(100),
},
"body": Sequelize.STRING,
})

和标签为-
const Tags = db.define('tag', {
name: {
type: Sequelize.STRING,
primaryKey: true
}
})

我在它们之间创建了一个多对多的关联
Articles.belongsToMany(Tags, {through:'article_tags'})
Tags.belongsToMany(Articles, {through:'article_tags'})

这在我的数据库中创建了一个表 article_tags 以及文章和标签。但是现在如何使用 sequelize 将数据插入到此 article_tags 桥接表中?

最佳答案

您还必须对该映射表进行建模....然后当您在解析器中说“tagArticle”之类的内容时,您只需使用文章的 ID 和标签的 ID 在映射表上调用 create 函数...这是一个连接表的解析器示例,我在其中将经销商连接到帐户

createUserAccountDealer: async (_, args, { models }) => {

let returnValue = null;
const { username, input } = args;
try {
returnValue = await models.ProfileDealerInfo.create(input);

if (returnValue && returnValue.dataValues.id) {
const tempJoin = { username, dealer_id: returnValue.dataValues.id };
await models.ProfileAccountDealer.create(tempJoin);
}
} catch (err) {
logger.error(err);
}
return returnValue;
}

对我来说,不同之处在于经销商是帐户的 child ,所以我在创建子经销商记录后立即进行加入记录......您的示例有点不同,标签和文章可能已经存在,您可能只是将它们关联起来这意味着 id 只会从客户端的 args 中传递,你不会有额外的步骤等待从子记录创建中取回 id

关于javascript - 如何使用 Sequelize.js 将数据插入桥接/映射表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56376847/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com